Bagaimana cara menambahkan tombol di ActionBar (Android)?

Saya ingin menambahkan Tombol ke Action Bar di sebelah kanan Contoh seperti pada screen shot ini:

Saya mendapatkan actionBar dalam metode onCreate sebagai:

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

dan tombol kembali (metode onOptionsItemSelected) seperti di bawah ini:

public boolean onOptionsItemSelected(MenuItem item){
    Intent myIntent = new Intent(getApplicationContext(),MainActivity.class);
    startActivityForResult(myIntent, 0);
    return true;
}

Bagaimana saya bisa menambahkan tombol?

Larutan

Anda harus membuat entri di dalam res/menu,override onCreateOptionsMenu dan mengembangnya

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.yourentry, menu);
    return true;
}

entri untuk menu bisa berupa:



Komentar (8)

Aktivitas mengisi ActionBar dalam metode onCreateOptionsMenu().

Daripada menggunakan setcustomview(), override saja onCreateOptionsMenu seperti ini:

@Override    
public boolean onCreateOptionsMenu(Menu menu) {
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.mainmenu, menu);
  return true;
}

Jika sebuah aksi di ActionBar dipilih, metode onOptionsItemSelected() dipanggil. Metode ini menerima aksi yang dipilih sebagai parameter. Berdasarkan informasi ini, kode Anda dapat memutuskan apa yang harus dilakukan misalnya:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
  switch (item.getItemId()) {
    case R.id.menuitem1:
      Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT).show();
      break;
    case R.id.menuitem2:
      Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT).show();
      break;
  }
  return true;
}
Komentar (0)

Terima kasih kepada @Blackbelt! Tanda tangan metode baru untuk menggembungkan menu adalah ini:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.my_meny, menu);
}
Komentar (0)