我用3.5.1版本的默认抽屉创建了一个新项目。我正在创建名称为ProfileActivity的新活动,我想将此活动的链接添加到抽屉,并在新的Activity(ProfileActivity)中添加导航抽屉。
当我尝试从导航抽屉中打开ProfileActivity时,它正在打开HomeFragment。是的,我给了正确的ID。
[试图将其完成几个月,但没有发生,这次可能会放弃。他们到处都提供有关碎片的解决方案。
我尝试过]
ProfileActivity
@Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LayoutInflater inflater = (LayoutInflater) this .getSystemService( Context.LAYOUT_INFLATER_SERVICE); View contentView = inflater.inflate(R.layout.activity_profile, null, false); final TextView textView = contentView.findViewById( R.id.text_gallery ); drawer.addView(contentView, 0); } }
并使抽屉受保护
当我尝试从导航抽屉中打开ProfileActivity时,它正在打开HomeFragment。是的,我给了正确的ID
<item android:id="@+id/profileActivity" android:icon="@drawable/ic_menu_manage" android:title="Profile" />
我的MainActivity如下
package com.example.iqhut;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import android.view.View;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.view.ViewCompat;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.ui.AppBarConfiguration;
import androidx.navigation.ui.NavigationUI;
import com.google.android.material.navigation.NavigationView;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.Menu;
import android.widget.RelativeLayout;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
private AppBarConfiguration mAppBarConfiguration;
protected DrawerLayout drawer;
@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();
}
} );
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,
R.id.nav_tools, R.id.nav_share, R.id.nav_send, R.id.profileActivity )
.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();
}
}
我用3.5.1版本的默认抽屉创建了一个新项目。我正在创建名称为ProfileActivity的新活动,我想将此活动的链接添加到抽屉中,并在新的Activity(ProfileActivity)中...