我想制作一个表格布局,其中有两行。如何将clicklistener添加到表格布局
在两行中都有一个标签和一个文本字段,当我按下第一行或第二行时,对话框将打开并输入任何值,它将在选定行的文本字段上设置。
请指导我如何使用示例在行上生成单击侦听器,以及如何在选中该行时调用对话框。
我想制作一个表格布局,其中有两行。如何将clicklistener添加到表格布局
在两行中都有一个标签和一个文本字段,当我按下第一行或第二行时,对话框将打开并输入任何值,它将在选定行的文本字段上设置。
请指导我如何使用示例在行上生成单击侦听器,以及如何在选中该行时调用对话框。
只需给每个的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();
}
}
首先,你必须给你的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可点击。这可能是你真正寻找
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;
}
当我选择排它不工作 – user3136235
你应该设置该行可点击和它的孩子们无法点击。 如果它仍然不工作提供一些代码,所以我们可以看到什么是错的 –
其工作非常感谢你 – user3136235