Android में एक गतिविधि के लिए एक विषय लागू करें?


86

मुझे पता है कि किसी विषय को पूरे आवेदन पर कैसे लागू किया जाए, लेकिन मैं सिर्फ एक गतिविधि के लिए एक विषय को लागू करने के लिए कहां जाऊंगा?

जवाबों:


158

आप को शामिल करके किसी भी गतिविधि के लिए एक विषय लागू कर सकते हैं android:themeअंदर <activity>प्रकट फ़ाइल के अंदर।

उदाहरण के लिए:

  1. <activity android:theme="@android:style/Theme.Dialog">
  2. <activity android:theme="@style/CustomTheme">

और यदि आप प्रोग्राम को थीम सेट करना चाहते हैं तो setTheme()कॉल करने से पहले setContentView()और super.onCreate()विधि के अंदर का onCreate()उपयोग करें।


1
अक्षम विषय के बारे में क्या? एक ही गतिविधि पर
Yousha Aleayoub

@Yousha Aleayoub: क्या आपने सिर्फ एक और थीम सेट करने की कोशिश की है?
यानिक

नहीं, लेकिन मैं सिर्फ इस विषय को निष्क्रिय करना / हटाना चाहता हूं और इसे मूल बनाना
चाहता हूं

1
और tools:context= ".YourAtivityName"रूट में एक्सएमएल गतिविधि में उपयोग
फैसल नसीर

34

गतिविधि.java में इसे प्रोग्रामेटिक रूप से सेट करने के लिए:

public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setTheme(R.style.MyTheme); // (for Custom theme)
  setTheme(android.R.style.Theme_Holo); // (for Android Built In Theme)

  this.setContentView(R.layout.myactivity);

Manifest.xml (सभी गतिविधियों) में एप्लिकेशन स्कोप सेट करने के लिए:

 <application
    android:theme="@android:style/Theme.Holo"
    android:theme="@style/MyTheme">

Manifest.xml (एकल गतिविधि) में गतिविधि क्षेत्र में सेट करने के लिए:

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

एक कस्टम थीम बनाने के लिए, आपको theme.xml फ़ाइल में थीम घोषित करना होगा, और स्टाइल में स्टाइल सेट करना होगा। xml फ़ाइल।


1
अक्षम विषय के बारे में क्या? एक ही गतिविधि पर
Yousha Aleayoub

2
आपने दो android:themeविशेषताएँ क्यों जोड़ी हैं ?
udun

@ विनीत कौशिक, android:theme="@android:style/Theme.Holo"एंड्रॉइड बिल्ट-इन थीम को जोड़ने के लिए वाक्य रचना है। android:theme="@style/MyTheme"आपकी styles.xmlफ़ाइल में वर्णित एक कस्टम विषय जोड़ने के लिए वाक्यविन्यास है । आपकी वास्तविक AndroidManifest.xmlफ़ाइल में आप प्रत्येक अनुभाग के लिए केवल एक या दूसरे का उपयोग करेंगे, दोनों का नहीं।
सोरेन स्टाउटनर

1
@Yousha Aleayoub, विषय को अक्षम करने के लिए, में एक रिक्त विषय बनाएँ styles.xmlऔर फिर सिंटैक्स का उपयोग करें android:theme=@style/MyBlankTheme
सोरेन स्टाउटनर

यह काम नहीं करते प्रकट में एक से अधिक कस्टम विषय लगता है। यदि आप एप्लिकेशन स्तर पर एक थीम जोड़ते हैं और गतिविधि स्तर पर एक सेकंड, केवल एक आवेदन का उपयोग किया जाता है। मैंने प्रत्येक गतिविधि के लिए अलग "लुक" के साथ एक विषय जोड़ने की कोशिश की, लेकिन अच्छे परिणाम के बिना।
पीटर

8

इससे पहले कि आप कॉल करें setContentView(), कॉल करें setTheme(android.R.style...)और बस उस विषय को बदलें ... जिसे आप चाहते हैं (थीम, Theme_NoTitleBar, आदि)।

या यदि आपका विषय एक कस्टम विषय है, तो पूरी चीज़ को बदलें, ताकि आप प्राप्त करें setTheme(yourThemesResouceId)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.