मैं यह कैसे कर सकता हूं?एंड्रॉइड एक प्रकार का दृश्य प्राप्त करें
कुछ:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
मैं यह कैसे कर सकता हूं?एंड्रॉइड एक प्रकार का दृश्य प्राप्त करें
कुछ:
final View view=FLall.getChildAt(i);
if (view.getType()==ImageView) {
...
}
पर तरीकों, तो कुछ अजीब कारण के लिए, आप असाही के सुझाव उपयोग नहीं कर सकते (टैग का प्रयोग करके), मेरे प्रस्ताव निम्न होगा:
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 ...
आप उस उद्देश्य के लिए टैग का उपयोग कर सकते हैं: देखें सेट/getTag http://developer.android.com/reference/android/view/View.html
निम्नलिखित मैं कोशिश करते हैं और यह काम किया:
View view=FLall.getChildAt(i);
Log.i("ViewName", view.getClass().getName());
मैं एक स्पिनर के लिए शैली सेट करने के लिए एक टेक्स्ट व्यू का उपयोग कर रहा हूं (इस उदाहरण में लिंक: http://developer.android.com/resources/tutorials/views/hello-spinner.html)। मैं भी इसे इस्तेमाल कर रहा हूं ITemSlected स्पिनर के लिए इवेंट विधि। घटना एए व्यू के साथ ट्रिगर कर रही थी जिसे मैंने पहचाना नहीं था। उपर्युक्त विधि का उपयोग करना - v.getClass()। getName() - मैं यह निर्धारित करने में सक्षम था कि दृश्य में देखा गया दृश्य मैं टेक्स्टव्यू का उपयोग कर रहा हूं जो शैलियों के लिए उपयोग कर रहा हूं। – jwatts1980
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;
}
यह ListView के लिए काम नहीं करता है। और, मुझे एक और कस्टम कस्टमलिस्ट दृश्य बनाना है जो ListView को बढ़ाता है, ताकि मैं इसका उपयोग कर सकूं (उदाहरण के लिए कस्टमलिस्ट देखें)। क्या सूची देखने के प्रकार को जानने का कोई तरीका है? धन्यवाद। – mabeiyi
@mabeiyi अगर 'सूची दृश्य' का उदाहरण देखें 'झूठा' है, तो इसका मतलब है कि आपका विचार 'ListView' नहीं है। – Felix
@ फ़ेलिक्स - वास्तव में यदि आपके पास सूची दृश्य है और आपने "सिंगलचॉइस" सेट किया है तो यह "android.widget.checkedTextView" का क्लास नाम वापस कर देगा। यह मुझे थोड़ा सा है। यह कवर के तहत करता है। :( – PAntoine