2012-01-04 39 views
7

Trong ứng dụng của tôi tạo chế độ xem văn bản động. Tôi muốn thêm onclickListener vào chế độ xem văn bản của mình. Làm thế nào tôi có thể làm điều đó xin vui lòng cho tôi một số gợi ý. Ở đây mã cứng cho xem văn bản.Làm cách nào để thêm onclicklistener vào chế độ xem văn bản được tạo động?

 for (int i = 0; i < subCategory.length; i++) { 
     TextView tv = new TextView(this); 
     tv.setText(subCategory[i]); 
     tv.setId(i); 
     sCategoryLayout.addView(tv); 

    } 
+0

kiểm tra liên kết này http://stackoverflow.com/questions/10482099/how-can-we-create-dynamic-textview/39290597#39290597 –

+0

Kiểm tra bên dưới liên kết http://stackoverflow.com/questions/ 10482099/how-can-we-create-dynamic-textview/39290597 # 39290597 –

Trả lời

0

Tạo một đối tượng View.onClickListener() "mListener". Thêm đối tượng này vào tv.setOnClickListener (mListener) trong vòng lặp.

0

Nó không phải là khác nhau từ một trong những bạn làm gì khi bạn tạo văn bản trong xml:

tv[i].setOnClickListener(new View.OnClickListener() { 
    @Override   
    public void onClick(View v) {  
    //your logic.  }  }); 
+0

nó sẽ chỉ xem văn bản được tạo lần cuối. – Narendra

+0

Xin lỗi! không quan sát vòng lặp của bạn, đã cập nhật mã của tôi. – kosa

13

đây là mã:

TextView tv[] = new TextView[subCategory.length]; 
    for (int i = 0; i < subCategory.length; i++) { 
      tv[i] = new TextView(this); 
      tv[i].setText(subCategory[i]); 
      tv[i].setId(i); 
      sCategoryLayout.addView(tv[i]); 
      tv[i].setOnClickListener(onclicklistener); 
     } 

OnClickListener phương pháp:

OnClickListener onclicklistener = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if(v == tv[0]){ 
      //do whatever you want.... 
     } 
    } 
}; 

hy vọng hữu ích cho bạn.

+0

TV TextView [] = TextView mới [subCategory.length]; điều này hiển thị lỗi – Narendra

+0

sunCategory.length ---> là độ dài của chế độ xem văn bản. năng động như bạn muốn. tôi nghĩ rằng vấn đề trong chiều dài. đặt một số giá trị không đổi nói 5 và kiểm tra. –

+0

Thanx cho mã hữu ích như vậy, nó đã giúp tôi ... +1 – Richa

1

đầu tiên tạo ra một người biết lắng nghe onclick:

OnClickListener listener = new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      final int id = v.getId(); 
      //use id to process different text view 
     } 
    }; 

và sau đó, sử dụng tv.setOnClickListener(listener) để lắng nghe.

0

Bạn cần gọi setOnClickListener (..) trên TextView Instance. Trong ví dụ dưới đây chúng tôi sử dụng lớp bên trong vô danh

TextView tv = new TextView(this); 
tv.setText("sample"); 
tv.setOnClickListener(new OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     Log.i("", "Inside onclick"); 
    } 
}); 
1
 for(int i = 0 ;i<mediaList.size();i++){ 
     view_media_gallery_item = LayoutInflater.from(view.getContext()).inflate(R.layout.e_media_gallery_item, null); 
     TextView title = (TextView) view_media_gallery_item.findViewById(R.id.media_gallery_item_title); 
     TextView subtitle = (TextView) view_media_gallery_item.findViewById(R.id.media_gallery_item_subtitle); 
     ImageView flux_Title_Image =(ImageView) view_media_gallery_item.findViewById(R.id.media_gallery_item_img); 

     title.setId(i+100); 
     subtitle.setId(i+1000); 
     flux_Title_Image.setId(2000+i); 




     view_media_gallery_item.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       System.out.println("view media clicked"); 
       Media m = (Media)v.getTag(); 
       medialistner.setOnItemclick(m); 
      } 
     }); 

     //   flux_Title_Image.setBackgroundDrawable(mediaList.get(i).getThumb()); 
     media_Gallery_List.addView(view_media_gallery_item); 
    } 
} 

mã chung này cho động thêm vào nhấp chuột listner trên bất kỳ xem hoặc xem nhóm động

0
for (int i = 0; i <subCategory.length; i++) { 
      tv[i] = new TextView(this); 
         tv[i].setText(subCategory[i]); 
         tv[i].setId(i); 
         sCategoryLayout.addView(tv[i]); 
         tv[i].setOnClickListener(this); 
     } 
@Override 
public void onClick(View v) { 
     // TODO Auto-generated method stub 
     v.getId(); //here u can get the id on that basis u can perform any action 
     //dont forget to implements OnClickListener in your activity 
    } 
3
for (int i = 0; i < subCategory.length; i++) { 
     TextView tv = new TextView(this); 
     tv.setText(subCategory[i]); 
     tv.setId(i); 
     tv.setOnClickListener(this); 
     sCategoryLayout.addView(tv); 

    } 

@Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
    switch(v.getId()) 
    { 
    case 1: 
    //Write Code For Click Here 
    break; 
    default: 
    break; 
    } 
} 

Impelement OnClickListner về vấn đề này lớp học.

0

Có, tôi cũng đã nhận được cùng một vấn đề nhưng người bạn tôi có những giải pháp và nó làm việc cho tôi

Tôi đã thêm TextView trong thời gian chạy và cũng làm cho họ nhấp vào dưới đây là mã.

for (int i = 0; i < albumItemList.size(); i++) { 
     toplayout = getActivity().getLayoutInflater().inflate(R.layout.addphotoalbumlistinfater, null); 
     newTV = (TextView)toplayout.findViewById(R.id.textView) ; 
     textViewcount= (TextView)toplayout.findViewById(R.id.textViewcount) ; 
     ll = (RelativeLayout) toplayout.findViewById(R.id.mainitemlist) ; 
     ll.setTag("position"+i); 
     newTV.setText(albumItemList.get(i).getAlbumName()); 
     textViewcount.setText(""+albumItemList.get(i).getCount()); 
     ll.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Toast.makeText(getActivity(),""+v.getTag(),Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     linearLayoutforaddchild.addView(toplayout); 
    } 
Các vấn đề liên quan