android - करन - लाइक वीडियो एप डाउनलोड




आपको इस गतिविधि के साथ थीम.एप कॉम्पैम्प थीम(या वंश) का उपयोग करने की आवश्यकता है (20)

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

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

यदि आप एक कस्टम संवाद चाहते हैं, तो आप डायलॉग एपीआई का उपयोग करने के बजाए एक गतिविधि को संवाद के रूप में प्रदर्शित कर सकते हैं। बस एक गतिविधि बनाएं और अपनी थीम को थीम.होलो.डिअलॉग पर <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>

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

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


SectionsPagerAdapter और ViewPager और Fragment के साथ मेरी गतिविधि

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

अपनी थीम स्टाइल पेरेंट को बदलें

 parent="Theme.AppCompat"

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


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

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

इसके लिए:

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

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

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

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

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


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

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

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

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

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


एंड्रॉइड मेनिफेस्ट में केवल ऐपथीम को गतिविधि स्निपेट के रूप में गतिविधि का विषय बदलें

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

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

Style.xml में अपना बेस थीम पैरेंट बदलें

से बदलें

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

सेवा मेरे

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

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

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

        ...    

    </application>

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

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

जैसे ही मैंने उपरोक्त थीम को मेरे मैनिफेस्ट में जोड़ा, इसने समस्या को हल किया।


मेरे अनुभवों में समस्या उस संदर्भ थी जहां मैंने अपना संवाद दिखाया। एक बटन के अंदर क्लिक करें मैं इस तरह से एक AlertDialog को तुरंत चालू करता हूं:

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

लेकिन संदर्भ सही नहीं था और त्रुटि हुई। मैंने इसे इस तरह से एप्लिकेशन संदर्भ का उपयोग कर बदल दिया है:

घोषणा खंड में:

Context mContext;

ऑनक्रेट विधि में

mContext = this;

और अंत में कोड में जहां मुझे अलर्टडिअलॉग की आवश्यकता है:

start_stop = (Button) findViewById(R.id.start_stop);
start_stop.setOnClickListener( new View.OnClickListener()
     {
                @Override
                public void onClick(View v)
                {
                    if (!is_running)
                    {
                        builder = new AlertDialog.Builder(mContext);
                        builder.setMessage("MYTEXT")
                                .setCancelable(false)
                                .setPositiveButton("SI", new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                    Task_Started = false;
                                    startTask();
                                    }
                                })
                                .setNegativeButton("NO",
                                        new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        dialog.cancel();
                                    }
                                });
                        AlertDialog alert = builder.create();
                        alert.show();
                    }
            }
        }

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


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


मेरे मामले में, मैं ApplicationContext के साथ एक दृश्य फुला रहा था। जब आप एप्लिकेशनकॉन्टेक्स्ट का उपयोग करते हैं, तो थीम / स्टाइल लागू नहीं होती है, इसलिए हालांकि थीम थी। मेरी शैली में ऐपकंपैप, यह लागू नहीं किया गया था और इस अपवाद का कारण बन गया था। अधिक जानकारी: एप्लीकेशनकॉन्टेक्स्ट के साथ प्रयुक्त होने वाले inflater के दौरान थीम / स्टाइल लागू नहीं होती है



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

( बिल्ड -> स्वच्छ परियोजना; बिल्ड -> प्रोजेक्ट पुनर्निर्माण; रन -> रन )

यह गूंगा प्रतीत हो सकता है, लेकिन अब यह बहुत अच्छा काम करता है !

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


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

<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base"/>

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

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


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

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

इसके लिए:

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

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

<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>

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

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

उपयोग

 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'

वांछित गतिविधि का विषय बदलें। यह मेरे लिए काम करता है:

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




android-studio