1

我是 Android 开发的新手,我正在尝试处理对项目网格的点击。最好的方法是什么?到目前为止,我有这样的设置onclicklistener

 TableLayout layout = (TableLayout) findViewById(R.id.tableLayout1);
    for (int i = 0; i < layout.getChildCount(); i++) {
        View v = layout.getChildAt(i);
        if (v instanceof TableRow) {
            for (int j = 0; j < ((TableRow)v).getChildCount(); j++) {
                View v2 =  ((TableRow)v).getChildAt(j);
                v2.setOnClickListener(this);
            }
        }
    }

现在我想处理对表中包含的项目的点击。由于有很多项目,我想避免写一个长的“开关”。这些项目具有包含行号和列号的逻辑 ID。有没有办法获取已点击项目的实际ID(XML中的ID)然后解析它?如果不是,那将是什么解决方案。

谢谢

4

1 回答 1

0

你有几个选择。您可以设置 onClickListener 内联:

v2.setOnClickListener(new OnClickListener() {
    public void onClick (View viewClicked) {
        Log.d("View row: " + i + ", column: " + j);
        // or something else
    }
});

或者您可以使用View.setTag(),它允许您将键值对存储到视图中,类似于地图。

于 2013-05-16T23:32:25.890 回答