2012-01-05 15 views
8

मैं अपने पहले एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं, और अपनी गतिविधि को स्टाइल करने की कोशिश कर रहा हूं। आखिरकार, मैं अपनी गतिविधि के लिए एक संवाद के रूप में दिखना चाहता हूं। मैं अपने सभी गतिविधियों मेरी AndroidManifest.xml में निम्नलिखित कोड का उपयोग कर Theme.Dialog शैली दे दिया है:मैं एंड्रॉइड में एक संवाद के रूप में अपनी गतिविधि कैसे दिखा सकता हूं?

<application 
    android:icon="@drawable/group" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Dialog"> 
</application> 

यह मेरी गतिविधियों "चल" उपस्थिति और एक संवाद की सीमाओं, लेकिन नहीं स्टाइल शीर्षक देता है। शीर्षक में सामान्य संवाद पृष्ठभूमि के समान रंग और उपस्थिति है, न कि "असली" संवाद के रूप में "शीर्षलेख" पृष्ठभूमि और सीमा। ध्यान दें कि दोनों उदाहरणों में हेडर की एक अच्छी सीमा है और दूसरे में, इसकी एक ढाल पृष्ठभूमि है।

क्या यह सुनिश्चित करने का कोई तरीका है कि मेरी गतिविधि पर शीर्षक किसी भी तरह से सिस्टम डायलॉग शीर्षक प्राप्त करता है ताकि प्रभावी रूप से मेरी गतिविधि के लिए एक संवाद के रूप को दोहराने के लिए - सीमा के अलावा और "फ्लोट" Theme.Dialog के साथ आता है अंदाज?

ध्यान दें कि मैं दूसरे से संवाद के रूप में मेरी गतिविधि कॉल करने के लिए नहीं करना चाहते हैं, मैं सिर्फ यह देखो एक dilaog की तरह, यहां तक ​​कि जब यह मेरे प्रकट की intent- के अनुसार कोई लक्ष्य के जवाब में भरी हुई है करना चाहते हैं फिल्टर।

Dialog Example 1

Dialog Example 2

जोड़ें: वहाँ है शायद किसी तरह मैं अपने गतिविधि हो सकता है, जब यह onCreate() में घूमती है, जो अपने आप में एक वास्तविक संवाद में बदलने के लिए फोन कुछ विधि? ध्यान रखें कि गतिविधि को अभी भी सिस्टम से इरादों का जवाब देने में सक्षम होना चाहिए।

+0

आप कौन सा संवाद चाहते हैं? छवि में पहला या दूसरा एक। – Sujit

+0

वे दोनों मानक शो-संवाद विधियों को कॉल करने का परिणाम हैं।दूसरी बात यह है कि यह सैमसंग के टचविज़ यूआई के साथ थीम के रूप में दिखाई देता है, पहला ऐसा लगता है कि यह त्वचा द्वारा सिलाईोजेनोड में चल रहा है। असल में, मैं बस अपनी गतिविधि को अपनाना चाहता हूं जैसे कि यह एक संवाद है जो उपयोगकर्ता की डिवाइस के चलते किसी भी विषय के अनुसार है, जैसा कि मैंने AlertDialog.builder का उपयोग किया था। – eidylon

उत्तर

2

क्या मैं करना चाहता था को देखने के लिए तय करने के बाद , के बजाय इसे कैसे करें विशेष रूप से, मुझे एक अलग दृष्टिकोण मिला। मैंने कार्यान्वयन विचारों here के बजाय दृष्टिकोण विचारों की तलाश में अपना प्रश्न उठाया। GalDude33 ने मुझे यह जानने में मदद की कि मैं क्या चाहता हूं। उनका उत्तर इस प्रश्न का उत्तर था।

+0

निश्चित रूप से, लेकिन इस दृष्टिकोण के साथ समस्या यह है कि परिणाम में गतिविधि का कोई गुण नहीं है। जैसे आप अपने संवाद में एक्शनबार नहीं दिखा सकते हैं। –

+0

मैं वास्तव में स्वीकार करूंगा कि एक्शनबार का उपयोग करने में सक्षम नहीं होना सबसे बड़ा नुकसान है ... और अपनी खुद की दिखने वाली टूलबार को रोल करना है। यदि आप एक्शनबार का उपयोग करने में सक्षम होने के दौरान संवाद कार्यक्षमता प्राप्त करने का एक तरीका दिखा सकते हैं, तो मैं बहुत खुश हूं! – eidylon

+0

मुझे पता चला कि आप क्रिएट (...) विधि में गतिविधि के आयाम को बदल सकते हैं, हालांकि मुझे नहीं पता कि काले सीमाओं को सेमिट्रैस्पेरेंट कैसे बनाया जाए, ताकि यह संवाद की तरह दिख सके: 'WindowManager.LayoutParams params = getWindow()। getAttributes(); params.height = 300; params.width = 100; getWindow()। SetGravity (Gravity.CENTER); getWindow()। SetAttributes (पैराम्स); ' –

2

का पालन के रूप में आप कर सकते हैं ..

अपने संवाद के लिए एक लेआउट बना सकते हैं और नीचे के रूप में में निर्धारित किया है।

Dialog mDialog = new Dialog(MainScreen.this,android.R.style.Theme_Translucent_NoTitleBar); 

mDialog .requestWindowFeature(Window.FEATURE_NO_TITLE); 

mDialog .setContentView(R.layout.dialoglayout); 
mDialog .show(); 
+0

मुझे कोड में इसे किसी अन्य गतिविधि में जोड़ने की आवश्यकता होगी, नहीं? मेरी गतिविधि सीधे लॉन्चर इरादों (होमस्क्रीन पर बनाए गए शॉर्टकट) का जवाब देती है, और मैं इसे एक संवाद की तरह दिखाना चाहता हूं जब इसे उन उद्देश्यों के लिए सिस्टम द्वारा या सीधे लॉन्चर के माध्यम से भी कहा जाता है। – eidylon

4

एक संवाद विषय माता पिता के रूप में यह निर्दिष्ट करने के द्वारा अनुकूलित किया जा सकता, styles.xml

<resources> 
<style name="MyDialogTheme" parent="android:Theme.Dialog"> 
      <item name="android:background">#ffdddddd</item> 
</style> 
</resources> 

में आप अपनी पसंद की संवाद शैली की पृष्ठभूमि और लेआउट के लिए एक अलग रंग देते हैं (android:background="#ffffffff" जोड़ने के नीचे लेआउट हेडर आपकी main.xml फ़ाइल में), यह एक सिस्टम संवाद जैसे दिखता है।

आशा .. इस में मदद करता है

उल्लेख करने के लिए मिस्ड: नीचे के रूप में अपने मेनिफ़ेस्ट में अनुकूलित विषय को देखें:

android:theme="@style/MyDialogTheme" 
+0

ठीक है, मैं पहले से ही अपनी गतिविधि पर 'थीम.डियोलॉग' शैली का उपयोग कर रहा हूं, लेकिन यह आपको केवल फ़्लोटिंग उपस्थिति और आपकी गतिविधि के चारों ओर की सीमा देता है। यह गतिविधि की शीर्षक पट्टी शैली नहीं है। मैं जरूरी नहीं कि डायलॉग लुक को कस्टमाइज़ करना चाहता हूं, मैं अपनी गतिविधि को आंतरिक संवाद की तरह दिखने की कोशिश कर रहा हूं (हालांकि उपयोगकर्ता के फोन के विषय के अनुसार दिख सकता है)। – eidylon

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