2010-02-16 10 views
35

द्वारा लगाए गए एक ही लेआउट पर नहीं है, तो मेरे पास एक गतिविधि MyActivity है जो MapActivity से फैली हुई है। .xml लेआउट युक्त फ़ाइल में मैं MapViewएंड्रॉइड: findviewbyid: आईडी द्वारा दृश्य ढूंढना जब दृश्य को कॉन्टेन्टिव्यू

<com.google.android.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/trail_map_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:clickable="true" 
    android:apiKey="key" 
/> 

हालांकि मैं एक और दृश्य है कि एक और .xml फ़ाइल में स्थित है खोजने के लिए की आवश्यकता है केवल शामिल कर सकते हैं। दुर्भाग्यवश, findViewById शून्य लौटाता है। मैं जिस दृश्य को ढूंढ रहा हूं उसे मैं कैसे प्राप्त कर सकता हूं?

बहुत बहुत धन्यवाद!

+0

आपको इसकी आवश्यकता क्यों होगी? तुम क्या करने की कोशिश कर रहे हो? – Macarse

+0

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

उत्तर

62

टिप्पणी करने के लिए धन्यवाद, मैं समझता हूं कि आपका क्या मतलब है लेकिन मैं पुराने मूल्यों की जांच नहीं करना चाहता था। मैं बस उस दृश्य में एक सूचक प्राप्त करना चाहता था।

कुछ निकायों के कोड को देखते हुए मुझे अभी एक वर्कअराउंड मिला है, आप LayoutInflater का उपयोग कर लेआउट की जड़ तक पहुंच सकते हैं।

final LayoutInflater factory = getLayoutInflater(); 

final View textEntryView = factory.inflate(R.layout.landmark_new_dialog, null); 

landmarkEditNameView = (EditText) textEntryView.findViewById(R.id.landmark_name_dialog_edit); 

असल में, this संदर्भ के लिए inflater मिल बढ़ विधि के माध्यम से जड़ दृश्य को देखने के लिए और अंत में लेआउट रूट दृश्य पर findViewById फोन: जहां this एक गतिविधि है

कोड, इस प्रकार है।

आशा किसी के लिए उपयोगी है! अलविदा

0

यह असंभव है। आप वर्तमान में चल रहे विचारों को केवल ढूंढ और एक्सेस कर सकते हैं। यदि आप पूर्व के मूल्य की जांच करना चाहते हैं। टेक्स्टवीव प्रीवियस गतिविधि में उपयोग किया जाता है, आपको मूल्य को सहेजना होगा SharePreferences, डेटाबेस, फ़ाइल या इरादे से पास करना।

+10

असंभव कुछ भी नहीं है। –

0

कोशिश:

Activity parentActivity = this.getParent(); 
if (parentActivity != null) 
{ 
    View landmarkEditNameView = (EditText) parentActivity.findViewById(R.id. landmark_name_dialog_edit); 
} 
3

मैं अपने गतिविधि में बदल लेकिन प्रभावित किया है। मेरा कोड यहां है:

View layout = getLayoutInflater().inflate(R.layout.list_group,null); 
     try { 
      LinearLayout linearLayout = (LinearLayout) layout.findViewById(R.id.ldrawernav); 
      linearLayout.setBackgroundColor(Color.parseColor("#ffffff")); 
     } 
     catch (Exception e) { 

     } 

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