मेरा कोड पूरी तरह से काम करता है: हर बार नेविगेशन ड्रॉअर में किसी आइटम को क्लिक करने पर आइटम का चयन किया जाता है।
बेशक मैं एक डिफ़ॉल्ट टुकड़ा (घर) के साथ ऐप शुरू करना चाहता हूं, लेकिन नेविगेशन ड्रॉअर में आइटम चयनित नहीं है। मैं उस आइटम को प्रोग्रामेटिक रूप से कैसे चुन सकता हूं?
public class BaseApp extends AppCompatActivity {
//Defining Variables
protected String LOGTAG = "LOGDEBUG";
protected Toolbar toolbar;
protected NavigationView navigationView;
protected DrawerLayout drawerLayout;
private DateManager db = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base_layout);
navigationView = (NavigationView) findViewById(R.id.navigation_view);
// set the home/dashboard at startup
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, new DashboardFragment());
fragmentTransaction.commit();
setNavDrawer();
}
private void setNavDrawer(){
// Initializing Toolbar and setting it as the actionbar
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Initializing NavigationView
//Setting Navigation View Item Selected Listener to handle the item click of the navigation menu
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
// This method will trigger on item Click of navigation menu
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
//Checking if the item is in checked state or not, if not make it in checked state
// I THINK THAT I NEED EDIT HERE...
if (menuItem.isChecked()) menuItem.setChecked(false);
else menuItem.setChecked(true);
//Closing drawer on item click
drawerLayout.closeDrawers();
//Check to see which item was being clicked and perform appropriate action
switch (menuItem.getItemId()) {
//Replacing the main content with ContentFragment
case R.id.home:
DashboardFragment dashboardFragment = new DashboardFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, dashboardFragment,"DASHBOARD_FRAGMENT");
fragmentTransaction.commit();
return true;
[...]
मुझे लगता है कि मुझे यहाँ संपादित करने की आवश्यकता है:
if (menuItem.isChecked()) menuItem.setChecked(false);
else menuItem.setChecked(true);
या onCreate
FragmentTransaction के साथ ऐप स्टार्टअप पर।
आपके समर्थन के लिए धन्यवाद।
onNavigationItemSelected
चयनित आईडी के लिए कार्रवाई को ट्रिगर करता है ?