Saya ingin menyesuaikan tombol kembali aktivitas di bilah tindakan, bukan di tombol kembali hard key. Saya telah mengganti onBackPressed()
metode ini. Ini berfungsi dengan tombol kembali emulator saya, tetapi tidak dengan tombol kembali bilah tindakan.
Saya ingin itu terjadi dengan bilah tindakan. Bagaimana saya bisa melakukan ini?
Ini kode saya:
@Override
public void onBackPressed() {
Toast.makeText(getApplicationContext(),"Back button clicked", Toast.LENGTH_SHORT).show();
return;
}
Saya telah menggunakan toast ini apakah menekan kembali berfungsi atau tidak tetapi implementasi aktual berubah seperti untuk kembali ke aktivitas sebelumnya. Tapi ini tidak berfungsi dengan tombol yang ada di atas bilah tindakan (selain judul aktivitas).
Tolong, siapa pun bisa menjelaskan masalahnya kepada saya.
return true;
menjadireturn super.onOptionsItemSelected(item)
. Kemudian Anda dapat membuat sesuatu terjadi saat pengguna mengeklik tombol kembali bilah tindakan, tetapi masih memiliki fungsi tombol yang sama.Jika Anda ingin tombol kembali ActionBar berperilaku sama seperti tombol kembali perangkat keras:
sumber
android.R.id.home
tidak menembaksetHasOptionsMenu(true)
metode onCreate fragmenDua hal yang perlu diingat bahwa pengguna dapat menekan tombol kembali atau menekan tombol beranda bilah tindakan.
Jadi, jika Anda ingin mengarahkannya ke tujuan yang sama maka Anda dapat melakukannya.
Ini akan membawa pengguna ke maksud dengan menekan salah satu tombol atau tombol bilah tindakan.
sumber
android.R.id.home
tidak menembaksumber
Maaf saya adalah jawaban yang terlambat, tetapi untuk siapa pun yang tiba di halaman ini dengan pertanyaan yang sama, saya telah mencoba yang di atas:
tapi ini gagal menangkap penekanan tombol "Kembali".
Akhirnya saya menemukan metode yang bekerja untuk saya di https://stackoverflow.com/a/37185334/3697478 yang menimpa "onSupportNavigateUp ()" karena saya menggunakan bilah tindakan dari pustaka dukungan "AppCompatActivity". (Ada "onNavigateUp ()" yang setara untuk pustaka bilah tindakan / bilah tindakan yang lebih baru.)
dan saya menghapus bagian "android: parentActivityName =". MainActivity "dari file manifes.
sumber
Saya telah mencapai ini, hanya dengan menggunakan dua langkah,
Langkah 1: Buka AndroidManifest.xml dan tambahkan parameter di tag - android: parentActivityName = ". Home.HomeActivity"
contoh:
Langkah 2: di ActivityDetail tambahkan tindakan Anda untuk halaman / aktivitas sebelumnya
contoh:
sumber
Jika Anda ingin kembali ke instance Aktivitas sebelumnya dengan menekan tombol beranda ActionBar, tanpa membuatnya kembali, Anda bisa mengganti metode getParentActivityIntent untuk menggunakan metode dari back-stack:
EDIT:
Anda juga dapat mencapai hasil yang sama dengan
menyetel launchMode aktivitas induk Anda ke singleTop.
Jadi setel
android:launchMode="singleTop"
ke aktivitas induk di manifes Anda.Atau Anda bisa menggunakan flag FLAG_ACTIVITY_CLEAR_TOP dengan maksud UP.
referensi: Menyediakan Navigasi Atas
sumber
(1) Tambahkan aktivitas Induk untuk aktivitas anak Anda (AndroidManifest.xml)
(2) mengganti metode onSupportNavigateUp di dalam aktivitas anak
sumber
sumber
Ada beberapa cara untuk mengatur tombol kembali di bar:
1) metode
.setDisplayHomeAsUpEnabled(true);
akan melakukannya, dan kemudian Anda dapat menggantiandroid.R.id.home
2) menambahkan
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="my.package.parrent" />
Manifes Android, tetapi dalam kasus ini Anda tidak dapat menggantiandroid.R.id.home
di OnOptionsMenuSelected... bagi mereka yang bertanya-tanya mengapa itu tidak berhasil untuk mereka ...
sumber