如何在表格布局中的行中添加clicklistener

时间:2014-06-26 09:43:58

标签: android onclicklistener android-tablelayout tablerow

我想制作一个有2行的表格布局。

在两行中都有一个Label和一个Text Field,当我按第一行或第二行时,提示对话框将打开,你输入它将在所选行的Text字段中设置的任何值。

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

4 个答案:

答案 0 :(得分:1)

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;
         }

}

答案 1 :(得分:0)

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

即可

方式:

<TableRow
    android:id="@+id/one"
    android:onClick="rowClick">

从布局中按ID查找行,然后在java类中添加以下内容

 tableRow= (TableRow) findViewById(R.id.one);

     tableRow.setClickable(true);
        tableRow.setOnClickListener(onClickListener);

private OnClickListener onClickListener= new OnClickListener() {
        public void onClick(View v) {
            show_dialog();

        }
    };  

然后调用以下方法

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();
        }
    }

答案 2 :(得分:0)

首先,你必须在你的xml文件中为你的TableRow提供一个id

<TableRow 
   android:id="@+id/row1"
   ...
>

将行的子项(在您的情况下为TextView和EditText)设置为NOT clickable

android:clickable="false"

现在在你的java文件中找到你的带有id的tablerow并添加onClickListener

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

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

    }
});

现在打开一个对话框,阅读this

只是一个猜测。 使EditText可单击。这可能是你真正想要的东西

答案 3 :(得分:0)

//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;
}