Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何处理表格布局中每个单元格上的单击事件_Android_Android Layout_Android Emulator_Android Widget - Fatal编程技术网

Android 如何处理表格布局中每个单元格上的单击事件

Android 如何处理表格布局中每个单元格上的单击事件,android,android-layout,android-emulator,android-widget,Android,Android Layout,Android Emulator,Android Widget,我有一个简单的表格布局 我需要的是允许最终用户单击表的每个单元格,并对每个单元格执行操作 但是,android表布局似乎只支持基于点击事件的行,不支持基于点击事件的单元格。如何摆脱这个 在特定表行中单击,请尝试以下代码: TableLayout contact_table = (TableLayout)findViewById(R.id.contact_table); final View row=contact_table.getChildAt(i); row.setOnClickListen

我有一个简单的表格布局

我需要的是允许最终用户单击表的每个单元格,并对每个单元格执行操作


但是,android表布局似乎只支持基于点击事件的行,不支持基于点击事件的单元格。如何摆脱这个

在特定表行中单击,请尝试以下代码:

TableLayout contact_table = (TableLayout)findViewById(R.id.contact_table);
final View row=contact_table.getChildAt(i);
row.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v){
        // TODO Auto-generated method stub
        row_id=contact_table.indexOfChild(row);
    }
});

您需要在XML布局定义文件中使用android:clickable=“true”和
android:onClick=“clickHandlerCell”
来处理单击事件,在我的例子中是线性布局


要确定单击了哪个单元格,可以在创建每个单元格时使用
view.setTag(uniqueID)
标记每个单元格的视图。在clickHandlerCell函数中,使用
view.getTag()
获取单元格的标识。

如果在clickHanderCell函数中使用
view.getTag()
,它只返回表的标记,而不是单元格。如何获取单元格的标签?@Oli,不,它返回一个单元格标签。在TableRow内创建TextView时,可以编写:
TextView.setTag(10)
。然后创建一个侦听器:
textView.setOnClickListener(…)。在它里面,你可以通过
inti=(int)v.getTag()
接收到10。该行的id不能帮助OP确定单击了该行上的哪个单元格。