【发布时间】:2015-04-22 23:13:37
【问题描述】:
我有一个基于输入动态制作的文本视图的表格布局。我想设置它,以便当用户单击该文本视图/框时,它将根据该文本视图的行和列位置执行某些操作。因此,例如,如果单击的是行 (1,2),则在字符串 extras 中为 1vs2 创建我的第二个活动。
问题是我正在动态创建这些列和行,所以我不知道它可以有多宽,而且我不想将文本设置到它的位置,因为那应该在那里显示值.我唯一能想到的就是将 ID 设置为特定的数字。例如,12 表示第 1 行,第 2 列。但是,这成为一个问题。如果我们做十多个。如 (11,2) = 112,那是第 1 行还是第 11 行?
最好的方法是什么?
以下是它们的创建方式:
//add cells
for (int k = 0; k < arrFencers.size() + 5; k++) {
//get table layout count
TextView tempCell = new TextView(this);
tempCell.setClickable(true);
tempCell.setText("_");
tempCell.setBackgroundResource(R.drawable.custombb);
// tempCell.setId("");
tempCell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//This doesn't work~~
String data = (String) parent.getItemAtPosition(position);
String[] IDs = data.split("-");
//Get names
String[] names = {arrFencers.get(Integer.parseInt(IDs[0]) - 1),
arrFencers.get(Integer.parseInt(IDs[1]) - 1)};
//setup bout Sheet data
String[] boutData = {IDs[0], names[0], IDs[1], names[1]};
//create new bout sheet
Intent bIntent = new Intent("hss.quickpool.bout");
bIntent.putExtra("boutData", boutData);
startActivityForResult(bIntent, 1);
}
});
//add to table row
newFencer.addView(tempCell);
}
【问题讨论】:
-
最简单的方法是使用
setTagdeveloper.android.com/reference/android/view/…进行视图识别 -
我试试看!谢谢
-
@nikis 这对我有用!随意写一个答案,我可以给你积分。
标签: android textview tablelayout