我正在制作一个数独应用程序,我创建了一个带有 81 个单独 TextView 的 TableLayout 来表示每个方块。
现在的问题是,我希望用户能够选择一个正方形,然后选择一个数字放入他们选择的正方形中。有什么方法可以将它们组合在一起,然后获取他们单击的单个文本视图?
也许是这样的:
TextView selected;
table.setOnClickListener(new TableLayout.OnClickListener() {
***selected = (TextView) table.getSelectedElement() ?***
}
这样,当他们选择一个数字时,我可以:
number.setOnClickListener(new Button.OnClickListener() {
selected.setText( number.getText().toString() );
}
这样,我就不必为每个方块制作 81 个单独的 onClick 方法,我相信这不会是解决方案。
提前感谢您的帮助。
假设您使用的是行,您可以尝试如下操作:
int count = table.getChildCount();
for(int i = 0; i < count; i++){
final View row = table.getChildAt(i);
for(int j = 0; j < row.getChildCount()){
TextView textView = (TextView) row.getChildAt(j);
textView.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick (View v) {
//write some custom alert box that allows use to enter
//text. positive alert button should do the follow
v.setText(theResult);
}
}
}
}
您可以优化代码...我已经把它直接写进了堆栈溢出,所以如果我有错误,很抱歉。
也使用GridView
在 xml 中添加android:onClick="onClick"
属性来设置对任何视图onClickListener
。在这种情况下,育儿活动必须具有功能
public void onClick(View v) {
}
那将被调用。参数View v
是对所单击视图的引用。
正如@royB提到的,如果您使用GridView
实现表,您将节省大量工作。