Как использовать 2 класса publi c, защищенные void, для созданных функций в тех же фрагментах? - PullRequest
0 голосов
/ 29 апреля 2020
  1. Как поместить более одного класса, обзор, недействительный в MainActivity java из Android Studio? Мне нужно иметь и кнопку, и код, чтобы карта Google имела некоторые ограничения на одной странице. Какие имена классов должны быть изменены, чтобы это работало. Коды работают, когда они установлены независимо, но не вместе. Как заставить их хорошо работать вместе?

    
         package com.example.maps;
         import android.content.Intent;
         import android.os.Bundle;
         import android.support.v4.app.FragmentActivity;
         import android.support.v7.app.AppCompatActivity;
         import android.view.View;
         import android.widget.Button;
    
         import com.google.android.gms.maps.CameraUpdateFactory;
         import com.google.android.gms.maps.GoogleMap;
         import com.google.android.gms.maps.OnMapReadyCallback;
         import com.google.android.gms.maps.SupportMapFragment;
         import com.google.android.gms.maps.model.LatLng;
         import com.google.android.gms.maps.model.LatLngBounds;
         import com.google.android.gms.maps.model.MarkerOptions;
    
    
         public class FirstFragment extends AppCompatActivity {
            Button button;
            @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
              button = (Button) findViewById(R.id.button);
              button.setOnClickListener(new View.OnClickListener() {
                   @Override
                   public void onClick(View v) {
                       openFoodFragment();
                    }
               });
            }
           public void openFoodFragment(){
                Intent intent = new Intent(this, FoodFragment.class);
                startActivity(intent);
            }
         }
        public class MainACTIVITY extends FragmentActivity implements OnMapReadyCallback {
    
            GoogleMap mapAPI;
           SupportMapFragment mapFragment;
           @Override
            protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
               mapFragment =(SupportMapFragment)
                       getSupportFragmentManager().findFragmentById(R.id.mapAPI);
    
                mapFragment.getMapAsync(this);
            }
            public void openFoodFragment(){
               Intent intent = new Intent(this, FoodFragment.class);
               startActivity(intent);
            }
          @Override
           public void onMapReady(GoogleMap googleMap){
              mapAPI =  googleMap ;
    
              LatLng one = new LatLng(-21.754812, -48.219451);
              LatLng two = new LatLng(-21.787443, -48.113332);
    
             LatLngBounds.Builder builder = new LatLngBounds.Builder();
    
             //add them to builder
             builder.include(one);
             builder.include(two);
    
             LatLngBounds bounds = builder.build();
    
             //get width and height to current display screen
             int width = getResources().getDisplayMetrics().widthPixels;
             int height = getResources().getDisplayMetrics().heightPixels;
             int padding = (int) (width * 0.20);
             mapAPI.setLatLngBoundsForCameraTarget(bounds);
              mapAPI.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, width, height, padding));
    
              //set zoom to level to current so that you won't be able to zoom out viz. move outside       bounds
             mapAPI.setMinZoomPreference(mapAPI.getCameraPosition().zoom);
    
    
             LatLng Kampai = new LatLng(-21.780985, -48.186859);
             mapAPI.addMarker(new MarkerOptions().position(Kampai).title("Kampai"));
             mapAPI.moveCamera(CameraUpdateFactory.newLatLng(Kampai));
    
             }
    
             }  
    

1 Ответ

0 голосов
/ 30 апреля 2020

Да, это может быть в том же файле, но у вас есть mainACTIVITY внутри вашего FirstFragment, что не может произойти, вам нужно убрать нижнюю скобку и поместить ее прямо над началом вашего класса mainACTIVITY, скобки вашего FirstFragment должны быть закрыты перед вами. вставьте другой класс в файл.

...