2011-09-06 15 views
5

में प्रत्येक पंक्ति में बटन जोड़ना मैं अपनी सूचीदृश्य की प्रत्येक पंक्ति में बटन जोड़ना चाहता हूं। मैंने अपने लेआउट फ़ोल्डर में row.xml नामक एक एक्सएमएल फ़ाइल बनाई और उस फ़ाइल में दो टेक्स्टव्यू और एक बटन जोड़ा। लेकिन जब कोई बटन जोड़ा जाता है, तो मैं सूचीदृश्य के आइटम पर क्लिक करने में असमर्थ हूं। मैं केवल बटन पर क्लिक करने में सक्षम हूं। यहाँ row.xml है:सूचीदृश्य

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 


    <TextView 
     android:id="@+id/text11" 

     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:textSize="25sp" 
    android:textColor="#000000" 
     /> 
      <TextView 
     android:id="@+id/text2" 

     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:textSize="10sp" 
    android:textColor="#000000" 
     /> 
      <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
</LinearLayout> 

मैं अपने गतिविधि में textviews और बटन का उल्लेख करना चाहते हैं। कृपया मेरी मदद करें और कुछ विचारों का सुझाव दें।

उत्तर

1

नज़र Android - Dynamically Add Views into View, add and remove views in android dynamically? और Android, add new view without XML Layout, Android, Part III: Dynamic Layouts

पर आशा यह तुम्हारी मदद करेगा।

धन्यवाद,

संपादित करें: सूचीदृश्य में बटन क्लिक करें घटना के लिए सिर्फ पेज 104 में जाँच Handling Button clicks in a ListView Row, click event for the button inside listview in android,

+0

धन्यवाद दोस्त। मैं समझ गया। लेकिन मैं अपनी आईडी द्वारा बटन को कैसे प्राप्त करूं क्योंकि वे row.xml में हैं और मेरी मुख्य लेआउट फ़ाइल अलग है। कृपया मदद करें – hussain

+0

@ हुसैन: मेरे संपादित उत्तर को देखें। – user370305

+0

बटन = (बटन) view.findViewById (R.id.btn); इसे देखने के बाद यहां देखें कि आपकी rw.xml फ़ाइल का दृश्य है। – user370305

0

इस लिंक की जांच करें ...

http://commonsware.com/Android/excerpt.pdf

कि पीडीएफ में , उन्होंने एक सूची दृश्य की प्रत्येक पंक्ति में एक छवि जोड़ा। आप इसे बटन के साथ बदलते हैं ..

आशा है कि यह आपकी समस्या हल करे।

+0

104 वें पृष्ठ ?? पृष्ठ 153 – cc4re

+0

पृष्ठ पृष्ठ से शुरू होने वाला कोई पृष्ठ 104 नहीं है। –

1

आप एक कस्टम एडाप्टर का उपयोग कर सकते हैं (एक सरणी एडाप्टर को विस्तारित करना काफी सरल है)। getView विधि में, अपने TextView पर onClickListener सेट करें, इस प्रकार आपके बटन और ListItem के अन्य हिस्सों दोनों स्पर्श को जवाब देंगे।

1

आप समस्या की जांच LINK

आशा इस मददगार होगा के लिए कुछ नया प्रयोग करने के लिए चाहते हैं।

8

मुझे एक समान समस्या थी। सरल चाल आपके बटन पर android:focusable="false" जोड़ना है।

+0

धन्यवाद। अंततः मुझे वह समाधान मिला जो मेरे लिए काम करता था! मेरी विशेष सूची दृश्य पंक्ति में दो बटन हैं, एक बाईं ओर और एक दाईं ओर। उन दो बटनों ने काम किया, लेकिन जब मैंने पंक्ति में कहीं और क्लिक किया, तो उसने इसे इटैम चयन कॉलबैक पर नहीं बुलाया। – hellaandrew

+0

डुनो क्यों लेकिन मेरे लिए काम नहीं किया – fnc12

1

में जोड़ना चाहिए फ़ोकस करने योग्य = "false" और आप

<Button 
     android:id="@+id/bt_do" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     **android:focusable="false"** /> 
अपने एडाप्टर

public class MyAdapter extends BaseAdapter { 
    private Context context; 
    private List<Objet> objects; 
    private OnClickListener listener; 

    public MyAdapter(Context context, List<Objet> objects, 
      OnClickListener listener) { 
     this.context = context; 
     this.objects = objects; 
     this.listener = listener; 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater infalInflater = ((Activity) context) 
        .getLayoutInflater(); 
      convertView = infalInflater.inflate(R.layout.my_line_list, null); 
     } 
     Button bt_do=(Button)convertView.findViewById(R.id.bt_do); 
     bt_do.setOnClickListener(listener); 
     return convertView; 

    } 

    @Override 
    public boolean hasStableIds() { 
     return true; 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return objects.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return objects.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

} 

में और अपनी गतिविधि में

संयुक्त राष्ट्र एडाप्टर बना सकते हैं और बटन के श्रोता को लागू।

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