2012-02-01 23 views
8

में स्थिति प्राप्त करें मैं कई वस्तुओं को दिखाने के लिए ListView का उपयोग करता हूं। नीचे के रूप में मेरे row.xml:ListView

<TextView android:text="text" 
android:id="@+id/tvViewRow" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 
<Button android:text="Click me!" 
android:id="@+id/BtnToClick" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:onClick="myClick"> 
</Button> 

और मैं नीचे के रूप में गतिविधि में myClick को परिभाषित:

public void myClick (View v) { 
LinearLayout vwParentRow = (LinearLayout)v.getParent(); 
//How to get the position 
} 

कैसे स्थिति पता करने के लिए जो स्थित बटन पर क्लिक किया जा सकता है? स्थिति का अर्थ ListItemClick पर विधि के समान है।

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
} 
+0

प्रयास करें यह सवाल से पहले कहा गया है, इससे पहले कि सवाल को देखने के लिए कृपया पोस्टिंग। – JoxTraex

उत्तर

33

में

public void DetailClick(View v) { 
ListView lv = getListView(); 
int position = lv.getPositionForView(v); 
} 
+1

इसके लिए आपको बहुत बहुत धन्यवाद! वह जानकारी इतनी छिपी क्यों है? – user1862770

1

हाँ ऑनलिस्टस्टैक्लिक में स्थिति सूची में क्लिक की गई वस्तु की स्थिति के समान है।

+0

मेरा मतलब है कि MyClick विधि – brian

1

यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो आपके पास ListView की प्रत्येक पंक्ति में एक बटन है, और आप जानना चाहते हैं कि कौन सी पंक्ति बटन क्लिक प्राप्त हुई है। आप बटन पर setOnClickListener() कैसे कर रहे हैं? कारण मैं यह पूछता हूं - यदि आप प्रत्येक बटन के लिए OnClickListener सेट कर रहे हैं, तो आप पहले से ही उस बटन की स्थिति जानते हैं।

+0

में स्थिति कैसे प्राप्त करें मैंने xml में onClick = "myClick" सेट किया है। – brian

+0

और myClick – brian

+0

की एक नई विधि को परिभाषित करें ओह क्षमा करें मुझे याद आया। – curioustechizen

2

आपको ListView के लिए प्रलेखन भी पढ़ना चाहिए और शायद उपलब्ध ट्यूटोरियल पर भी एक नज़र डालें।

अपने दस्तावेज़ों को जानें।

5

आप इस तरह प्रयास कर सकते हैं।

चरण 1: अपने कस्टम अनुकूलक में

@Override 
public view getView(int position, View convertView, ViewGroup parent){ 
.......//Perform your logic 
    convertView.findViewById(R.id.BtnToClick).setTag(position); 
    return convertView; 
} 

चरण 2: onclick श्रोता

public void myClick (View v) { 
    LinearLayout vwParentRow = (LinearLayout)v.getParent(); 
    position=(Integer) v.getTag(); 
    } 
+0

बिल्कुल सही समाधान! धन्यवाद! – Nick