2014-06-26 35 views
2

我想制作一个表格布局,其中有两行。如何将clicklistener添加到表格布局

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

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

回答

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

首先,你必须给你的TableRow你的xml文件

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

设置你行的孩子们的ID(在你的情况下一个TextView和一个EditText可能)以不可点击

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可点击。这可能是你真正寻找

+0

当我选择排它不工作 – user3136235

+0

你应该设置该行可点击和它的孩子们无法点击。 如果它仍然不工作提供一些代码,所以我们可以看到什么是错的 –

+1

其工作非常感谢你 – user3136235

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

} 
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; 
} 
相关问题