android– 如何获取表行表项的单击事件?

android– 如何获取表行表项的单击事件?,第1张

概述我在.xml文件中有一个简单的表格布局.我在运行时向它添加组件.以下是我的代码:publicclassHomeextendsActivity{TextViewtv1;inti;TableRowtbrow;String[]names={"FirstName","LastName","Title","Company","Phone"};int

我在.xml文件中有一个简单的表格布局.我在运行时向它添加组件.
以下是我的代码:

public class Home extends Activity{    TextVIEw tv1; int i;tableRow tbrow;    String [] names = {"First name","Last name", "Title","Company","Phone"};    int [] images = { R.drawable.icon,R.drawable.icon,R.drawable.star2,R.drawable.icon,R.drawable.icon}        @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);         setContentVIEw(R.layout.main);              tableLayout ll=(tableLayout) findVIEwByID(R.ID.tableLayout1);        tableRow trow=new tableRow(this);        ImageVIEw Image1=new ImageVIEw(this);        ImageVIEw Image2=new ImageVIEw(this);        ImageVIEw Image3=new ImageVIEw(this);        ImageVIEw Image4=new ImageVIEw(this);        tv1=new TextVIEw(this);        trow.setClickable(true);        Image1.setimageResource(R.drawable.blank);        Image2.setimageResource(R.drawable.star2);        Image3.setimageResource(R.drawable.blank);        Image4.setimageResource(R.drawable.blank);        tv1.setText("brochures");        trow.addVIEw(Image1);        trow.addVIEw(tv1);        trow.addVIEw(Image2);        trow.addVIEw(Image3);        trow.addVIEw(Image4);        trow.setID(0);        ll.addVIEw(trow);        for(i=1;i<5;i++){            tbrow=new tableRow(this);            ImageVIEw img1=new ImageVIEw(this);            tv1=new TextVIEw(this);            CheckBox chk=new CheckBox(this);            ImageVIEw img2=new ImageVIEw(this);            ImageVIEw img3=new ImageVIEw(this);            img1.setimageResource(R.drawable.pdf);            img2.setimageResource(R.drawable.blank);            img3.setimageResource(R.drawable.blank);            tv1.setText(""+names[i]);            tbrow.addVIEw(img1);            tbrow.addVIEw(tv1);            tbrow.addVIEw(chk);            tbrow.addVIEw(img2);            tbrow.addVIEw(img3);            tbrow.setID(i);            Log.e("TAG", "ID: "+tbrow.getID());            tv1.setonClickListener(new OnClickListener() {                                      @OverrIDe                public voID onClick(VIEw arg0) {                    Toast.makeText(Home.this, ""+tbrow.getID(),                            Toast.LENGTH_SHORT).show();                    Log.e("TAG", " clicked ID: "+tbrow.getID());                }            });         ll.addVIEw(tbrow);        }    }}

每当我单击任何行时,都会触发最后一行的onClick()事件.我还试图触发表行的onClick()事件而不是文本视图,但是徒劳无功.

我想知道点击了哪一行. getID(),setID()将无法正常工作.

请帮忙.

解决方法:

改变线

tbrow=new tableRow(this);

final tableRow tbrow = new tableRow(this);

它会像你期望的那样工作.

总结

以上是内存溢出为你收集整理的android – 如何获取表行/表项的单击事件?全部内容,希望文章能够帮你解决android – 如何获取表行/表项的单击事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1112794.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存