दिलचस्प पोस्ट
पायथन की डिफ़ॉल्ट एन्कोडिंग बदल रहा है? php var_dump () बनाम print_r () सीएसएस: टेबल कोशिकाओं काटकर, जितना संभव हो उतना फिट PHP का उपयोग करने के लिए HTTP शीर्षलेख UTF-8 सेट करें क्या आईओएस 7 में UITableView कोशिकाओं को विभाजक में एक लाइन ब्रेक नहीं है? क्या मुझे स्पष्ट रूप से बेस वर्चुअल डिस्ट्रक्टर को कॉल करने की आवश्यकता है? आईओएस डिवाइस लॉक होने पर या किसी अन्य एप्लिकेशन पर पृष्ठभूमि ऑडियो चलाने के तरीके को कैसे संभालना है? Android सभी ListView आइटम का स्क्रीनशॉट प्राप्त करता है क्या इंप्रेस की तुलना में वास्तव में 1 जोड़ें? x86 कैसे जावास्क्रिप्ट के साथ एक मोबाइल डिवाइस का पता लगाने के लिए? सीएसएस सामग्री की संपत्ति: क्या टेक्स्ट के बजाय एचटीएमएल सम्मिलित करना संभव है? विजुअल स्टूडियो अजीब काम कर रहा है मैं यह कैसे तय करुं? आपका पसंदीदा विजुअल बेसिक 6.0 टूल और टिप्स मैं आखिरी बच्चे को छोड़कर एक तत्व के सभी बच्चों का चयन कैसे कर सकता हूं? जावास्क्रिप्ट में यूटीएफ -8 शब्द सीमा regex

आपको इस गतिविधि के साथ थीम। ऐप कॉमपेट थीम (या वंश) का उपयोग करना होगा

एंड्रॉइड स्टूडियो 0.4.5

कस्टम संवाद बॉक्स बनाने के लिए एंड्रॉइड प्रलेखन: http://developer.android.com/guide/topics/ui/dialogs.html

यदि आप एक कस्टम संवाद चाहते हैं, तो आप डायलॉग एपीआई के उपयोग के बजाय एक डायलॉग के रूप में एक गतिविधि प्रदर्शित कर सकते हैं। बस एक गतिविधि बनाएं और Theme.Holo.Dialog को <activity> प्रकट तत्व में अपनी थीम सेट करें:

 <activity android:theme="@android:style/Theme.Holo.Dialog" > 

हालांकि, जब मैंने इसे करने की कोशिश की तो मुझे निम्नलिखित अपवाद मिलता है:

 java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity 

मैं निम्नलिखित का समर्थन कर रहा हूं, और मैं न्यूनतम के लिए 10 से अधिक कुछ नहीं का उपयोग कर सकता हूं:

 minSdkVersion 10 targetSdkVersion 19 

मेरी शैली में मुझे निम्नलिखित हैं:

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

और मेरे प्रकट में यह गतिविधि के लिए है:

  <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:theme="@android:style/Theme.Holo.Light.Dialog" android:name="com.ssd.register.Dialog_update" android:label="@string/title_activity_dialog_update" > </activity> 

इस तरह संवाद बॉक्स का निर्माण करना था जो मैं करना चाहता था, क्योंकि मैंने पहले से ही लेआउट पूरी कर लिया है।

क्या कोई मुझे बता सकता है कि मैं इस समस्या को कैसे प्राप्त कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "आपको इस गतिविधि के साथ थीम। ऐप कॉमपेट थीम (या वंश) का उपयोग करना होगा"

आपको इस समस्या का कारण यह है कि जिस गतिविधि को आप डायलॉग थीम पर लागू करने का प्रयास कर रहे हैं, ActionBarActivity को बढ़ाया जा रहा है, जिसके लिए AppCompat विषय को लागू किया जाना आवश्यक है।

अद्यतन : AppCompatActivity विस्तार भी इस समस्या होगी

इस स्थिति में, ActionBarActivity से Activity को जावा विरासत को बदल दें और मैनिफ़ेस्ट में डायलॉग थीम को छोड़ दें क्योंकि यह एक गैर थीम. Theme.AppCompat मान है


सामान्य नियम यह है कि यदि आप चाहते हैं कि आपका कोड एंड्रॉइड के पुराने संस्करणों का समर्थन करता है, तो उसे AppCompat विषय होना चाहिए और जावा कोड में AppCompatActivity विस्तार होना चाहिए। यदि आपके पास * एक ऐसी गतिविधि है जिसे इस समर्थन की ज़रूरत नहीं है, जैसे कि आप केवल एंड्रॉइड के नवीनतम संस्करण और सुविधाओं की परवाह करते हैं, तो आप उस पर कोई भी थीम लागू कर सकते हैं लेकिन जावा कोड को सादे पुरानी Activity विस्तार करना चाहिए


नोट: जब AppCompatActivity Activity (या उपवर्ग, ActionBarActivity ) से Activity को बदलते हैं, तो "समर्थन" के बिना इसी कॉल में "समर्थन" के साथ विभिन्न कॉलों को भी बदलना होगा। इसलिए, getSupportFragmentManager बजाय, getSupportFragmentManager को कॉल करें।

आपको केवल android:theme="@style/Theme.AppCompat.Light" जोड़ने की ज़रूरत है android:theme="@style/Theme.AppCompat.Light" AndroidManifest.xml फ़ाइल में अपने एप्लिकेशन टैग पर।

उपरोक्त टिप्पणियों में @ मार्ककिन से उत्तर की प्रतिलिपि बनाते हुए मुझे एक ही समस्या थी

मेरे पास पोस्ट के शीर्ष पर बताई गई त्रुटि थी और मैंने एक चेतावनी संवाद जोड़ लिया था। मेरे पास मेनिफेस्ट में सभी प्रासंगिक शैली की जानकारी है चेतावनी निर्माता में एक संदर्भ संदर्भ बदलकर मेरी समस्या ठीक हो गई थी – मैंने बदल दिया है:

 new android.support.v7.app.AlertDialog.Builder(getApplicationContext()) 

सेवा मेरे:

 new android.support.v7.app.AlertDialog.Builder(this) 

और कोई और समस्याएं नहीं

न्यूनतम एसडीके 10 है। ActionBar एपीआई स्तर 11 से उपलब्ध है। इसलिए 10 के लिए आप सहायता लाइब्रेरी से AppCompat का उपयोग करेंगे, जिसके लिए आपको Theme.AppCompat या इसके वंशज का इस्तेमाल करना होगा।

उपयोग

 android:theme="@style/Theme.AppCompat" > 

और जानकारी @

http://developer.android.com/guide/topics/ui/actionbar.html

Eidt:

मेरे पास ऑफसेट पोस्ट भूल गया हो सकता है

सेप एक गतिविधि थीम के साथ एक संवाद चाहता है लगता है इसलिए जैसा कि पहले ही बॉबके 4 द्वारा सुझाव दिया गया है कि ActionBarActivity बजाय Activity विस्तार करें।

इसके अलावा नीचे दिए गए लिंक में एक नज़र @ डायलॉग गुण हैं

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/frameworks/base/core/res/res/values/themes.xml/

यह मेरे लिए काम किया, मैंने अभी बदल दिया है:

 final AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext()); 

इसके लिए:

 final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 

यह मेरे लिए तय किया गया है: मैनिफेस्ट में विषय को निर्दिष्ट करने के बजाय, मैं इसे onCreate करते हुए हर गतिविधि के लिए onCreate में परिभाषित करता हूं: ActionBarActivity :

 @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.MyAppTheme); super.onCreate(savedInstanceState); setContentView(R.layout.my_activity_layout); ... } 

यहाँ MyAppTheme का वंशज है, और इसे xml में परिभाषित किया गया है नोट करें कि थीम को super.onCreate से पहले सेट होना चाहिए। super.onCreate और सेट super.onCreate

अपने शैलियों में जाओ और माता पिता को डाल दिया

 parent="Theme.AppCompat" 

के बजाय

 parent="@android:style/Theme.Holo.Light" 

मैं इस समस्या का सामना कर रहा था, भले ही मेरा थीम एक AppCompat थीम था और मेरी गतिविधि एक AppCompatActivity (या Activity , जैसा कि दूसरे के उत्तर पर सुझाव दिया गया था) था। इसलिए मैंने इस परियोजना को साफ, पुनर्निर्माण और पुन: चलाया।

( बिल्ड -> क्लीन प्रोजेक्ट, बिल्ड -> रीबिल्ड प्रोजेक्ट – रन -> रन )

यह गूंगा लग सकता है, लेकिन अब यह महान काम करता है !

बस उम्मीद है कि यह मदद करता है!

यदि आपको ActionBarActivity का विस्तार करने की आवश्यकता है तो आपको अपनी शैली .xml पर आवश्यकता होती है:

 <!-- Base application theme. --> <style name="AppTheme" parent="AppTheme.Base"/> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> 

यदि आप एंड्रॉइड के रूप में अपने आवेदन की मुख्य थीम के रूप में सेट करते हैं: थीम। सामग्रीऐप थियम के बजाय लाइट। फिर आपको एक " अवैधस्टेट एक्सपैशन मिलेगा: आपको इस गतिविधि के साथ थीम। ऐप कॉमपेट थीम (या वंश) का उपयोग करना होगा" त्रुटि।

मुझे सैमसंग उपकरणों पर इस तरह की दुर्घटना थी, हालांकि गतिविधि ने थीम का उपयोग किया था। AppCompat मूल कारण सैमसंग पक्ष पर अजीब अनुकूलन से संबंधित था:

 - if one activity of your app has theme not inherited from Theme.AppCompat - and it has also `android:launchMode="singleTask"` - then all the activities that are launched from it will share the same Theme 

मेरा समाधान अभी android:launchMode="singleTask" निकाल रहा था android:launchMode="singleTask"

मुझे एक ही समस्या थी, लेकिन जब मैंने इसे मैनिफेल्ड पर डाल दिया, तो इसका समाधान किया: एंड्रॉइड: थीम = "@ स्टाइल / थीम। ऐप कॉमपेट

  <application android:allowBackup="true" android:icon="@drawable/icon" android:label="@string/app_name_test" android:supportsRtl="true" android:theme="@style/Theme.AppCompat"> ... </application> 

मेरे मामले में मेरे रिज़र्वेशन डायरेक्टरी में कोई वैल्यू-वी 21 फाइल नहीं है I फिर मैंने इसे बनाया और निम्नलिखित कोड में इसे जोड़ा:

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

वांछित गतिविधि का विषय बदलें मेरे लिए इसका काम

 <activity android:name="HomeActivity" android:screenOrientation="landscape" android:theme="@style/Theme.AppCompat.Light" android:windowSoftInputMode="stateHidden" /> 

एंड्रॉइड मैनिफेस्ट में ऐप्पथीम के लिए गतिविधि का विषय बदलते हैं, जैसा कि कोड स्निपेट का अनुसरण करता है

 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme"> </activity> 

आप इस पर आए हैं क्योंकि आप पिछले एसडीके संस्करणों में अपनी थीम शैली में सामग्री डिज़ाइन 21 से लागू करना चाहते हैं। ActionBarActivity को AppTheme आवश्यकता है, इसलिए यदि आप अपने ऐपथीम के बारे में अपने स्वयं के अनुकूलन को रोकना चाहते हैं, केवल आपको अपनी styles.xml में बदलना होगा (एसडीके 21 से पहले) तो इस तरह से, एक ऐप कॉमाट थीम के लिए वारिस हो सकता है।

 <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

इसके लिए:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

अपनी थीम शैली के माता-पिता को इसमें बदलें

  parent="Theme.AppCompat" 

यह मेरे लिए काम किया …

यह एक ने मेरे लिए काम किया:

 <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/Theme.AppCompat.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

आपके पास उस त्रुटि के कई समाधान हैं

  1. आपको ActionbarActivity या AppCompatActivity के बजाय गतिविधि या फ्रेग्मेंट ऐक्टिविटी का उपयोग करना चाहिए

  2. यदि आप ActionbarActivity या AppCompatActivity का उपयोग करना चाहते हैं, तो आप Style.xml Theme.Holo.xxxx में Theme.AppCompat.Light में बदलना चाहिए (यदि आवश्यक हो तो डार्कएक्शनबार में जोड़ें)

यदि आपको एक्शन बार या AppCompat के बारे में उन्नत विशेषताओं की आवश्यकता नहीं है, तो आपको एक्शनबार या ऐप कॉमपेट का उपयोग करने की आवश्यकता नहीं है।

आपकी गतिविधि ActionBarActivity विस्तार कर रही है जिसके लिए AppCompat.theme को लागू किया जाना आवश्यक है। ActionBarActivity से गतिविधि या फ्रेगमेंट ऐक्टिविटी में परिवर्तन, यह समस्या को हल करेगा

यदि आप कोई ऐक्शन बार का उपयोग करते हैं तो:

 android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" 

मेरे लिए संदर्भथीम का उपयोग करने के लिए समाधान था:

 private FloatingActionButton getFAB() { Context context = new android.support.v7.view.ContextThemeWrapper(getContext(), R.style.AppTheme); FloatingActionButton fab = new FloatingActionButton(context); return fab;} 

एंड्रॉइड से – प्रोग्राम को एफएबी कैसे बनाऊं?

यह तब होता है जब आप फ्रेगमेंट में एक अलर्टडायलोग करना चाहते हैं

  AlertDialog.Builder adb = new AlertDialog.Builder(getActivity()); adb.setTitle("My alert Dialogue \n"); adb.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //some code } }); adb.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); adb.show(); 

मुझे यह समस्या भी थी और मैंने इसे ठीक करने के लिए क्या किया, और फिर भी होलो थीम का उपयोग इन चरणों को लेना था:

पहले मैंने इस आयात को बदल दिया था:

 import android.support.v7.app.AppCompatActivity; 

इसके साथ:

 import android.app.Activity; 

फिर से मेरा एक्सटेंशन बदल दिया:

 public class MyClass extends AppCompatActivity {//... 

इसके लिए:

 public class MyClass extends Activity {//... 

और यह भी इस आयात को बदलना पड़ा:

 import android.support.v7.app.AlertDialog; 

इस आयात करने के लिए:

 import android.app.AlertDialog; 

और फिर आप गतिविधि स्तर पर मैनिफेस्ट में अपना थीम टैग का उपयोग कर सकते हैं:

 android:theme="@android:style/Theme.Holo.Dialog" /> 

और अंत में, (जब तक आप अपने प्रोजेक्ट में ऐसे अन्य क्लासेस नहीं होते हैं जिसने v7 appCompat का उपयोग करना है) आप या तो अपने प्रोजेक्ट को साफ़ कर सकते हैं और पुनर्निर्माण कर सकते हैं या एप स्तर पर gradle बिल्ड फ़ाइल में इस प्रविष्टि को हटा सकते हैं:

 compile 'com.android.support:appcompat-v7:23.2.1' 

अगर आपके पास अपनी प्रोजेक्ट में अन्य क्लास हैं जो कि v7 ऐप कॉम्प्लेट का उपयोग करने के लिए है तो केवल साफ और प्रोजेक्ट का पुनर्निर्माण

अनुभागों के साथ मेरी गतिविधि पेज एडेप्टर और व्यूपैगर और टुकड़ा

 public class MyActivity extends AppCompatActivity implements ActionBar.TabListener ... ... @Override public void onPostResume(){ super.onPostResume(); try { getSupportActionBar().setDisplayShowTitleEnabled(false); }catch (NullPointerException ignored){ } } 

यह समाधान मेरे लिए काम किया

डिज़ाइन लाइब्रेरी सहायता v4 और AppCompat समर्थन पुस्तकालयों पर निर्भर करता है, इसलिए gradle में एपकाम और डिज़ाइन लाइब्रेरी के लिए अलग-अलग संस्करण का उपयोग न करें।

उपयोग

  compile 'com.android.support:appcompat-v7:23.0.0' compile 'com.android.support:design:23.0.0' 

के बजाय

  compile 'com.android.support:appcompat-v7:23.0.0' compile 'com.android.support:design:23.1.0' 

त्वरित समाधान

Styles.xml में अपना मूल विषय मूल बदलें

से बदलें

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

सेवा मेरे

 <style name="AppTheme" parent="Theme.AppCompat"> 

मुझे यह वही समस्या मिल रही थी क्योंकि मैं कस्टम नेविगेशन ड्रॉवर बना रहा था लेकिन मैं इस तरह मेरे प्रकट रूप में विषय का उल्लेख करना भूल जाता हूं

एंड्रॉयड: विषय = "@ शैली / Theme.AppCompat.NoActionBar"

जैसे ही मैंने अपने प्रकट होने वाले विषय को ऊपर जोड़ दिया, उसने समस्या का समाधान किया।

नोट: मैंने इसे एक उत्तर के रूप में मना किया था, लेकिन अधिक परीक्षण से पता चलता है कि कमांड लाइन से मेवेन का उपयोग करते समय यह अभी भी असफल रहता है, इसलिए मुझे इसे एक समस्या होने के लिए संपादित करना पड़ा है! 🙁

मेरे मामले में जब मुझे यह त्रुटि मिली तो मैं पहले से ही एक AppCompat थीम का उपयोग कर रहा था और त्रुटि बहुत मायने नहीं रखती थी।

मैं अपने एंड्रॉइड बिल्ड बनाने की प्रक्रिया में था मैं पहले से ही एपीसीलिब और जार संस्करणों के आदान-प्रदान संस्करणों पर निर्भरता करता था, इस प्रकार:

  <!-- See https://github.com/mosabua/maven-android-sdk-deployer --> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <version>${compatibility.version}</version> <type>apklib</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7-appcompat</artifactId> <type>jar</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v7</artifactId> <type>jar</type> </dependency> <dependency> <groupId>android.support</groupId> <artifactId>compatibility-v4</artifactId> </dependency> 

अब, जब मैं मेवेन प्रोजेक्ट आयात करता हूं और इंटेलीज से इसे चलाने और चलाने से यह ठीक है।

लेकिन जब मैं मेवेन के साथ कमांड लाइन का निर्माण और तैनाती और चलाता हूं, तब भी मुझे यह अपवाद मिलता है।

एंड्रॉइड स्टूडियो में: ग्रेडलाइन फ़ाइल और समन्वयन में सहायता लाइब्रेरी जोड़ें संपादित करें build.gradle (मॉड्यूल: ऐप) की निर्भरता निम्नानुसार है:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.android.support:support-v4:23.1.1' } 

मेरा समर्थन पुस्तकालय संस्करण 23.1.1; अपने सपोर्ट लाइब्रेरी संस्करण का प्रयोग करें जैसा कि लागू है।

मेरे कस्टम डिलीजन क्लास में एप कॉमपेट एक्टिविटीटी से ऐक्टिविटी तक विरासत को बदलकर मेरे मुद्दे को हल किया गया। थीम के लिए मैनिफेस्ट में आवश्यक कोई परिवर्तन नहीं।

मेरे लिए उपरोक्त उत्तरों में से कोई भी काम नहीं हुआ, इसके बाद भी मैं थी थीम। Theme.AppCompat मेरे आवेदन के लिए आधार विषय के रूप में। मैं com.android.support:design:24.1.0 का उपयोग कर रहा था। 24.1.1 इसलिए मैंने बस संस्करण को 24.1.1 बदल दिया। स्नातक सिंक के बाद, फिर से काम करना और अपवाद दूर चला गया। मुझे लगता है कि यह मुद्दा डिजाइन समर्थन पुस्तकालयों के कुछ पुराने संस्करणों के साथ था।

बस इसे यहाँ रखकर अन्य उत्तर कुछ लोगों के लिए काम नहीं करते हैं।