2015-06-06 10 views
5

जब भी मैं एक्शन बार में < बटन क्लिक करता हूं तो मैं मूल गतिविधि को नष्ट करने से बचाना चाहता हूं।एक्शन बार में यूपी बटन ओवरराइड करें

जब हम उस बटन को दबाते हैं तो कौन सी विधि AppCompatActivity से कॉल की जा रही है?

क्या मेरे लिए इसे ओवरराइड करने का कोई तरीका है? और क्या सभी गतिविधियों के लिए ओवरराइड करने का कोई तरीका है?

उत्तर

11

जब भी मैं एक्शन बार में < बटन क्लिक करता हूं तो मैं मूल गतिविधि को नष्ट करने से बचना चाहता हूं।

नष्ट हो जाने के बजाय, उस बटन को दबाए जाने के बाद आपकी मूल गतिविधि रोक दी जाएगी।

क्या मेरे लिए इसे ओवरराइड करने का कोई तरीका है? और क्या सभी गतिविधियों के लिए ओवरराइड करने का कोई तरीका है?

बस फोन:

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); 
} 
+0

यदि आप टूलबार पर क्लिक श्रोता सेट करते हैं, तो यह तब तक माता-पिता पर वापस नहीं आ जाएगा जब तक कि आप कुछ इक्विव नहीं कहें श्रोता में 'NavUtils.navigateUpFromSameTask' के लिए alent। –

1

जो लोग ऊपर बटन ओवरराइड करने के लिए वापस बटन के रूप में ही हो सकता है और गतिविधि से नेविगेट करने के लिए खोज रहे हैं के लिए एक और सही ढंग से, बस

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home){ 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
संबंधित मुद्दे