2010-11-07 14 views

उत्तर

114

पर तरीकों, तो कुछ अजीब कारण के लिए, आप असाही के सुझाव उपयोग नहीं कर सकते (टैग का प्रयोग करके), मेरे प्रस्ताव निम्न होगा:

if (view instanceof ImageView) { 
    ImageView imageView = (ImageView) view; 
    // do what you want with imageView 
} 
else if (view instanceof TextView) { 
    TextView textView = (TextView) view; 
    // do what you want with textView 
} 
else if ... 
+0

यह ListView के लिए काम नहीं करता है। और, मुझे एक और कस्टम कस्टमलिस्ट दृश्य बनाना है जो ListView को बढ़ाता है, ताकि मैं इसका उपयोग कर सकूं (उदाहरण के लिए कस्टमलिस्ट देखें)। क्या सूची देखने के प्रकार को जानने का कोई तरीका है? धन्यवाद। – mabeiyi

+4

@mabeiyi अगर 'सूची दृश्य' का उदाहरण देखें 'झूठा' है, तो इसका मतलब है कि आपका विचार 'ListView' नहीं है। – Felix

+0

@ फ़ेलिक्स - वास्तव में यदि आपके पास सूची दृश्य है और आपने "सिंगलचॉइस" सेट किया है तो यह "android.widget.checkedTextView" का क्लास नाम वापस कर देगा। यह मुझे थोड़ा सा है। यह कवर के तहत करता है। :( – PAntoine

12

निम्नलिखित मैं कोशिश करते हैं और यह काम किया:

View view=FLall.getChildAt(i); 
Log.i("ViewName", view.getClass().getName()); 
+0

मैं एक स्पिनर के लिए शैली सेट करने के लिए एक टेक्स्ट व्यू का उपयोग कर रहा हूं (इस उदाहरण में लिंक: http://developer.android.com/resources/tutorials/views/hello-spinner.html)। मैं भी इसे इस्तेमाल कर रहा हूं ITemSlected स्पिनर के लिए इवेंट विधि। घटना एए व्यू के साथ ट्रिगर कर रही थी जिसे मैंने पहचाना नहीं था। उपर्युक्त विधि का उपयोग करना - v.getClass()। getName() - मैं यह निर्धारित करने में सक्षम था कि दृश्य में देखा गया दृश्य मैं टेक्स्टव्यू का उपयोग कर रहा हूं जो शैलियों के लिए उपयोग कर रहा हूं। – jwatts1980

8
दूसरों जो कुछ मामलों में इस प्रश्न की जांच, instanceof काम नहीं करता है के लिए

यदि आपका चाहते हैं दृश्य प्रकार ImageView या ImageButton (मैं इस स्थिति का परीक्षण) है की जांच करने के (मैं पता नहीं क्यों!) उदाहरण के लिए , यह उन्हें वही मिलता है, इसलिए आप इस तरह से स्कैन करते हैं:

//v is your View 
    if (v.getClass().getName().equalsIgnoreCase("android.widget.ImageView")) { 
     Log.e("imgview", v.toString()); 
     imgview = (ImageView) v; 
    } else if (v.getClass().getName().equalsIgnoreCase("android.widget.ImageButton")) { 
     Log.e("imgbtn", v.toString()); 
     imgbtn = (ImageButton) v; 
    } 
संबंधित मुद्दे