2013-07-27 6 views
22

मैं ActionBarActivitygetSupportActionBar() विधि getSupportActionBar() टास्क एक्टिविटी प्रकार के लिए अपरिभाषित है। क्यूं कर?

से मेरे गतिविधि वर्ग का विस्तार करने की सिफारिश की थी यहाँ पिछले कोड है:

import android.support.v7.app.ActionBar; 
import android.support.v7.app.ActionBarActivity; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main);   
} 

मैं नए आवेदन में लिखा था और सलाह का पालन किया।

import android.os.Bundle; 
    import android.support.v7.app.ActionBar; 
    import android.support.v7.app.ActionBarActivity;    

    public class MainActivity extends ActionBarActivity { 

      @Override 
      public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      ActionBar actionBar =getSupportActionBar(); 
      actionBar.setDisplayHomeAsUpEnabled(true);    
      setContentView(R.layout.activity_main); 
      } 

      @Override 
      public boolean onCreateOptionsMenu(Menu menu) { 
      getMenuInflater().inflate(R.menu.main, menu); 
      return true; 
      }    
     } 

अगर मैं गतिविधि के बजाय ACtionBarActivity उपयोग करते हैं, मैं फ़ोन पर निम्न त्रुटि मिलती है, जब मैं इसे चलाने के लिए प्रयास करें:

विधि getSupportActionBar() प्रकार TaskActivity के लिए अपरिभाषित है

उत्तर

1

यहां मेरे प्रश्न का उत्तर दिया गया है। मैंने फिर से कुछ टिप्पणियों के साथ पूछा है। How to add support libraries?

+6

क्या यह इस प्रश्न को डुप्लिकेट बनाता है? –

71

getSupport*() विधियों का उपयोग करने के लिए आपकी कक्षा को के बजाय ActionBarActivity से विस्तार करने की आवश्यकता है।

अद्यतन [2015/04/23]: the release of Android Support Library 22.1 साथ, आप अब AppCompatActivity. भी विस्तार करना चाहिए, आप अब ActionBarActivity या AppCompatActivity विस्तार करने के लिए, जैसा कि आप अब किसी भी गतिविधि में एक AppCompatDelegate उदाहरण शामिल कर सकते हैं है।

+2

ने आज मेरी मदद की :) –

+0

महान उत्तर, धन्यवाद –

+0

@MH हाँ, लेकिन क्यों? –

5

मुझे विश्वास है कि यह एक और समाधान है जिसका आप उपयोग कर सकते थे। यह मेरे ऐप में काम कर रहा है।

 @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Android.support.v7.app.ActionBar actionBar =getSupportActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true);    
     setContentView(R.layout.activity_main) 

फिर आप एक लाइन एक्शनबार उपयोग के लिए उस आयात से छुटकारा पा सकते हैं।

+0

बहुत बहुत धन्यवाद, लेकिन मैंने पहले ही अपनी समस्या हल कर ली है। मैंने समर्थन पुस्तकालयों को जोड़ने के बारे में पढ़ा है। –

2

आप पहले से ही ActionBarActivity से बढ़ा रहे हैं और आप एक टुकड़ा से कार्रवाई बार प्राप्त करने के लिए कोशिश कर रहे हैं:

ActionBar mActionBar = (ActionBarActivity)getActivity()).getSupportActionBar(); 
2

आप एक AppCompatActivity से विस्तार कर रहे हैं और टुकड़ा से ActionBar पाने के लिए कोशिश कर रहे हैं, तो आप यह कर सकते हैं:

ActionBar mActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); 
0

आप बदलना होगा फैली गतिविधि AppCompactActivity तो सेट की कोशिश प्रदान करता है और getSupportActionBar()

संबंधित मुद्दे