Android -Студия: Как прикрепить карту к фрагменту NavigationDrawer - PullRequest
0 голосов
/ 07 марта 2020

Это мой первый пост здесь, и я не знаю, с чего начать. Так что извините, если он слишком длинный .. Итак ... когда-нибудь go Я начал работать над проектом в Android -Студия (моя первая ... так что я не знаю много об этом, и я все еще учусь) .. Что все о ... Так что это должно быть действие карты + ящик деятельности. Я создал проект карты .. обработал его .. создал слушателя местоположения .. так что до сих пор у моего проекта была простая карта с маркером на моем текущем местоположении. Затем ... я перешел к своей второй цели ... Имея активную для рисования активную область (щелкнув правой кнопкой мыши по проекту-> new-> Activity-> активность в панели навигации), а затем я переписываю свой манифест таким образом, чтобы наложение моя карта, поэтому ящик будет первым:

В значительной степени я хочу прикрепить свою карту к кнопке «Домой» / фрагменту, поэтому, когда я нажимаю кнопку «Домой», она показывает мне мою карту, а когда я нажимаю ее слайд-шоу покажет «Это фрагмент слайд-шоу»

Манифест

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.coffee">
  <!--
       The ACCESS_COARSE/FINE_LOCATION permissions are not required to use
       Google Maps Android API v2, but you must specify either coarse or fine
       location permissions for the 'MyLocation' functionality.
  -->
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <activity
          android:name=".MainActivity"
          android:label="@string/title_activity_main"
          android:theme="@style/AppTheme.NoActionBar">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>

      </activity>
      <!--
           The API key for Google Maps-based APIs is defined as a string resource.
           (See the file "res/values/google_maps_api.xml").
           Note that the API key is linked to the encryption key used to sign the APK.
           You need a different API key for each encryption key, including the release key that is used to
           sign the APK for publishing.
           You can define the keys for the debug and release targets in src/debug/ and src/release/.
      -->
      <meta-data
          android:name="com.google.android.geo.API_KEY"
          android:value="@string/google_maps_key" />

      <activity
          android:name=".MapsActivity"
          android:label="@string/title_activity_maps"
          android:theme="@style/AppTheme.ActionBar">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />

              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>
  </application>

</manifest> 

Сейчас .. Я не могу найти подходящий учебник Youtube / Google, который бы показывал мне, как "прикрепить" мою карту к первой кнопке ящика "Домой". Некоторые вещи, которые говорят что-то вроде использования MapView или MapFragment .. но нет учебника о том, как реализовать их для кнопки или что делать / изменить .. (MainActivity)


    private AppBarConfiguration mAppBarConfiguration;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);
        // Passing each menu ID as a set of Ids because each
        // menu should be considered as top level destinations.
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow)
                .setDrawerLayout(drawer)
                .build();
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onSupportNavigateUp() {
        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        return NavigationUI.navigateUp(navController, mAppBarConfiguration)
                || super.onSupportNavigateUp();
    }

И я поставлю ссылку на Git: https://github.com/Devix71/CoffeeNOU

Любая помощь будет высоко ценится ..И извините, если я добавлю много "бесполезной" информации.

1 Ответ

1 голос
/ 07 марта 2020

@Override
    public boolean onNavigationItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.nav_home){
            startActivity(new Intent(MainActivity.this, MapsActivity.class));
        }

        if (id == R.id.nav_slideshow){
            //Here you can put you code
            FragmentManager manager = getFragmentManager();
            FragmentTransaction transaction = manager.beginTransaction();
            transaction.add(R.id.container,YOUR_FRAGMENT_NAME,YOUR_FRAGMENT_STRING_TAG);
            transaction.addToBackStack(null);
            transaction.commit();
        }

        return true;
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...