2013-07-27 6 views
5

मैं एंड्रॉइड विकास के लिए नया हूं।एंड्रॉइड: चयनित सूची आइटम के पाठ में गतिशील रूप से गतिविधि शीर्षक बदलें

मैंने एक साधारण मास्टर-विवरण ऐप बनाया जो विषयों की एक सरल, लंबवत स्क्रॉलिंग सूची से शुरू होता है।

जब उपयोगकर्ता कोई विषय चुनता है, तो चयनित स्क्रीन से संबंधित विवरणों की एक सूची के साथ, पहली स्क्रीन को प्रतिस्थापित करते हुए एक विवरण स्क्रीन दिखाई देती है।

मैं विवरण स्क्रीन के लिए शीर्षक को पहले पृष्ठ पर चुना गया विषय दिखाने के लिए शीर्षक चाहता हूं, लेकिन लगभग एक सप्ताह तक काम करने के बाद समस्या को हल करने में सक्षम नहीं हूं।

मुझे यह जानने की ज़रूरत है, क्या यह किया जा सकता है? किसी के लिए इसे हल करने के लिए किसी की तलाश नहीं है, लेकिन हो सकता है कि एक संकेत या एक ट्यूटोरियल के लिए एक लिंक जो दिखाता है कि यह कैसे किया जा सकता है।

नोट: मैं जो करना चाहता हूं उसका एक चित्र पोस्ट करना चाहता हूं, लेकिन मैं यहां नया हूं और अभी तक 10 प्रतिष्ठा नहीं है।

धन्यवाद, SonCoder

उत्तर

5

बिल्कुल सही नहीं है कि आप क्या चाहते हैं लेकिन किसी भी तरह से .. - आपके पास एक सूचीदृश्य है। सूचीदृश्य में प्रत्येक दृश्य (डेटा) को मॉडल द्वारा दर्शाया जाना चाहिए। (उर्फ एक अलग वर्ग में विशेष जानकारी है कि आप प्रत्येक ListItem के लिए प्रतिनिधित्व करना चाहते हैं।

लिखें एक कस्टम सूची एडाप्टर (आधार एडाप्टर से विस्तार)। http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/ इस वर्ग की getView विधि में आप स्ट्रिंग फ़ील्ड लोड जिस पाठ को आप टेक्स्टव्यू में चाहते हैं।

- उपरोक्त एडाप्टर में व्यूहोल्डर पैटर्न का उपयोग करना सुनिश्चित करें। मैंने देखा कि उदाहरण एक का उपयोग नहीं करता है। यह सूची में स्क्रॉलिंग की गति करता है क्योंकि खोजने के लिए बहुत कम कॉल हैं ViewById

-सूची गतिविधि में एक दृश्य ऑनक्लिक श्रोता सेट अप करें।यह एक इरादा (एक गतिविधि शुरू करने के लिए) या एक टुकड़ा लेनदेन (टुकड़ों के लिए) बनाना चाहिए। अपने पूरे मॉडल का उदाहरण भेजें (

parent.getAdapter().getItem(position); 

ऑन क्लिक विधि में) विस्तार गतिविधि में प्राप्त होगा।

- यदि आप एक टेक्स्टव्यू शीर्षक सेट करना चाहते हैं तो बस टेक्स्टव्यू प्राप्त करें और इसे मॉडल से सेट करें। एडाप्टर की getView विधि में आपको उतना ही दायर किया जाएगा।

आप ActionBar सेट में titile सेट करना चाहते हैं -यदि:

this.getActionBar().setTitle(title) 
+0

उपर्युक्त उत्तर के साथ, इस दृष्टिकोण और कार्यान्वयन को कैसे कार्यान्वित करना होगा। फिर, मैं एंड्रॉइड के लिए बहुत नया हूं ... और सामान्य रूप से प्रोग्रामिंग। सुझाव की सराहना करें। – dmiannay

+0

धन्यवाद। जब मैंने समस्या को हल करने की कोशिश की थी तो मैंने इसे कुछ हफ्ते पहले नहीं देखा था। कोड की यह सरल रेखा "this.getActionBar()। SetTitle (शीर्षक)" चाल है और यह बहुत अच्छा काम करता है! धन्यवाद! – dmiannay

1

यह सरल है। intent में अतिरिक्त डेटा भेजें जो activity से शुरू होता है और फिर गतिविधि के onCreate में डेटा पढ़ता है और फिर गतिविधि से setTitle(myString) विधि का उपयोग करें।

setTitle(String title) को कहीं भी गतिविधि का उपयोग करके कहीं से भी बुलाया जा सकता है।

तो, आपके listadapter में, तो आप अपने दृश्य पर listener सेट करते हैं? पूरे "रूट" दृश्य पर एक साधारण onClickListener बस ठीक है।

श्रोता में आप इस के तरीके में कुछ कहना:

Intent intent = new Intent(myActivity, MySubActivity.class); 
intent.putExtra(key, titleName); 
myActivity.startActivity(intent); 

ध्यान दें कि गतिविधि संदर्भ एडाप्टर के निर्माता में और कहा कि सेट किया जाना चाहिए "कुंजी" स्ट्रिंग कुछ आप से मिलता है अपने strings.xml। कोड में इन्हें डुप्लिकेट न करें क्योंकि यदि आप एक बदलते हैं और दूसरों को बदलना भूल जाते हैं तो आपको कुछ डरावनी एनपीई मिल सकती हैं।

अपने MySubActivity के onCreate()

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    String key = getString(R.string.my_title_key); 
    String title = intent.getString(key); 
    setTitle(title); 
} 

नोट में जारी रखें: मैं सब विधि के नाम के बारे में सुनिश्चित सही है और इस तरह, लेकिन कुछ इस तरह कर रहे हैं नहीं कर रहा हूँ।

+0

सुझाव बहुत ही सरल है, लेकिन मैं अनुसंधान करने के लिए कैसे इरादे में "चयनित विषय" स्ट्रिंग पारित करने के लिए होगा। आपने मुझे ध्यान केंद्रित करने के लिए कुछ दिया है। – dmiannay

+0

1 मिनट की तरह संपादित करें चेक करें। –

+0

धन्यवाद- आप @ जॉन एस। आपकी युक्तियाँ बहुत मददगार रही हैं! अभी भी सीखने के लिए बहुत कुछ है, लेकिन यात्रा प्यार करता हूँ। – dmiannay

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