जब भी मैं एक्शन बार में < बटन क्लिक करता हूं तो मैं मूल गतिविधि को नष्ट करने से बचना चाहता हूं।
नष्ट हो जाने के बजाय, उस बटन को दबाए जाने के बाद आपकी मूल गतिविधि रोक दी जाएगी।
क्या मेरे लिए इसे ओवरराइड करने का कोई तरीका है? और क्या सभी गतिविधियों के लिए ओवरराइड करने का कोई तरीका है?
बस फोन:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
आप इसे गतिविधियों आप बटन ओवरराइड करना चाहते करने के लिए कॉल करने के लिए की जरूरत है। इसे 'सभी के लिए एक बार' कॉल करने का कोई अन्य विकल्प नहीं है।
जब हम उस बटन को दबाते हैं तो कौन सी विधि AppCompatActivity से कॉल की जा रही है?
डिफ़ॉल्ट रूप से, इसमें कोई विधि नहीं है। यदि आप Toolbar
का उपयोग करते हैं, तो उस बटन को दबाए जाने पर कुछ करने के लिए setNavigationOnClickListener()
पर कॉल करें।
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// do something here, such as start an Intent to the parent activity.
}
});
आप ActionBar
उपयोग करते हैं, उस बटन Menu
पर उपलब्ध हो जाएगा:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
// do something here, such as start an Intent to the parent activity.
}
return super.onOptionsItemSelected(item);
}
स्रोत
2015-06-06 07:26:30
यदि आप टूलबार पर क्लिक श्रोता सेट करते हैं, तो यह तब तक माता-पिता पर वापस नहीं आ जाएगा जब तक कि आप कुछ इक्विव नहीं कहें श्रोता में 'NavUtils.navigateUpFromSameTask' के लिए alent। –