Android Up button not working
android, android-activity, android-studio, java, r.java-file
Solution
Here is how you can implement this, try this code
use android.R.id.home instead of R.id.home or R.id.homeAsUp
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//use onBackPressed() OR finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Problem
I am trying to manually implement the actions that must take place when the up button on the actionbar is pressed but for some reason nothing happens when I press it. here is my code: ``` public class ActivityOne extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_activity_one); Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar_actionbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); Button button = (Button)findViewById(R.id.btn1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openActivityTwo(); } }); Button button2 = (Button)findViewById(R.id.btn2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { openActivityThree(); } }); } void openActivityTwo(){ Intent intent = new Intent(this, ActivityTwo.class); startActivity(intent); } void openActivityThree(){ Intent intent = new Intent(this, ActivityThree.class); startActivity(intent); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_activity_one, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } else if(id == R.id.homeAsUp){ Log.i("","Up is pressed"); finish(); return true; } return super.onOptionsItemSelected(item); } } ``` I understand that I have to explicitly assign a parent activity for the activity I want to implement up navigation on the manifest file, but problem is that this activity has multiple parents so I thought calling the `finish()` method when the up button is pressed on this activity will be the better approach. I have already tried both `id == R.id.home` and `id == R.id.homeAsUp` and they both do not work. I do not know if it is because I am using `AppCompactActivity` or what Please help