Android 如何向表布局中的行添加clicklistener

Android 如何向表布局中的行添加clicklistener,android,onclicklistener,android-tablelayout,tablerow,Android,Onclicklistener,Android Tablelayout,Tablerow,我想做一个有两行的表格布局 在这两行中都有一个标签和一个文本字段,当我按第一行或第二行时,提示对话框将打开,并输入它将在所选行的文本字段上设置的任何值 请用示例指导我如何在行上创建单击侦听器,以及如何在选中行时调用对话框。只需为每个TableRow元素指定一个唯一的id并定义一个onClick 方法: <TableRow android:id="@+id/one" android:onClick="rowClick"> 然后调用下面的方法 public void s

我想做一个有两行的表格布局

在这两行中都有一个标签和一个文本字段,当我按第一行或第二行时,提示对话框将打开,并输入它将在所选行的文本字段上设置的任何值


请用示例指导我如何在行上创建单击侦听器,以及如何在选中行时调用对话框。

只需为每个TableRow元素指定一个唯一的id并定义一个
onClick

方法:

<TableRow
    android:id="@+id/one"
    android:onClick="rowClick">
然后调用下面的方法

public void show_dialog() {

        final Dialog dialog = new Dialog(getApplicationContext());
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow();
        dialog.setContentView(R.layout.yourlayout);
        dialog.setTitle("yor title");
        dialog.setCancelable(false);

        final Button btnOkDialog = (Button) dialog.findViewById(R.id.ResetOkBtn);
        btnOkDialog.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {


            }
        });
        try {
            dialog.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

首先,必须在xml文件中为TableRow指定一个id

<TableRow 
   android:id="@+id/row1"
   ...
>
现在,在java文件中找到id为的tablerow并添加onClickListener

TableRow row1 = findViewById(R.id.row1);
d.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
});
现在打开一个对话框,阅读

只是猜测而已。
使编辑文本可单击。它可能是您真正想要的

您应该将行设置为可单击,将其子项设置为不可单击。如果它仍然不起作用,请提供一些代码,以便我们可以看到哪里出了问题
TableRow row1 = findViewById(R.id.row2);
row1.setOnClickListener(new OnClickListener()
 {

    public void onClick(View v) {
        // TODO Auto-generated method stub
// do any thing

    }
});

// Method 2 ********************
TableRow row1 = findViewById(R.id.row2);
row1.setonClickListner(this);

public void onClicl(View v)
{
switch (v.getId())
         {
         case R.id.row1: 

             break;
         }

}
TableRow row1 = findViewById(R.id.row1);
d.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub

    }
});
TableRow row1 = findViewById(R.id.row2);
row1.setOnClickListener(new OnClickListener()
 {

    public void onClick(View v) {
        // TODO Auto-generated method stub
// do any thing

    }
});

// Method 2 ********************
TableRow row1 = findViewById(R.id.row2);
row1.setonClickListner(this);

public void onClicl(View v)
{
switch (v.getId())
         {
         case R.id.row1: 

             break;
         }

}
//if we want to applay listener on dynamic tablerow then use this
//sure that perfect 
 TablRowe tr = new TableRow(this);
tr.setClickable(true);
tr.setId(100);// if in loop then add 1 counter with 100 like (100+counter) at end count++ it
 tr.setOnClickListener(this);
 @Override
    public void onClick(View v) 
{


        switch (v.getId())
         {
         case 100: 
               Toast.makeText(getApplicationContext(), "100", Toast.LENGTH_SHORT).show();   
             break;

         case 101:
            Toast.makeText(getApplicationContext(), "101", Toast.LENGTH_SHORT).show();  
             break;
}