我想制作一个有2行的表格布局。
在两行中都有一个Label和一个Text Field,当我按第一行或第二行时,提示对话框将打开,你输入它将在所选行的Text字段中设置的任何值。
请指导我如何使用示例在行上创建单击侦听器,以及如何在选择行时调用对话框。
答案 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;
}