Reputation: 1852
I'm having trouble trying to use intents to move from the OnItemClicked in Android. I've Googled many sites for solutions but I still keep getting errors. What I want to do is to Go from MenuActivity to MainActivity when the navigationDrawers button is pressed "Home".
Here is my sample code.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
menu = new String[]{"Home","And","Win","nux","berry P","Word","Vis","Co"};
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,menu);
dList.setAdapter(adapter);
dList.setSelector(android.R.color.holo_blue_dark);
dList.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
dLayout.closeDrawers();
Bundle args = new Bundle();
Fragment detail = null;
args.putString("Menu", menu[position]);
if(menu[position].equals("Home")){
Intent i = new Intent(MenuActivity.this,MainActivity.class);
startActivity(i);
finish();
}else{
detail = new DetailFragment();
}
detail.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, detail).commit();
}
});
Upvotes: 0
Views: 66
Reputation: 44118
finish()
does not exit immediately therefore if you don't call return after it, the remaining code will be executed. Try this:
if (menu[position].equals("Home")) {
Intent i = new Intent(MenuActivity.this, MainActivity.class);
startActivity(i);
finish();
return;
} else {
detail = new DetailFragment();
}
Upvotes: 1