如何在网格布局中获取行和列值?
How to get row and column value in a grid layout?
我在Android Studio 中定义了一个GridView,我想获取每个单元格的行值和列值。基本上我正在构建一个 Tic Tac Toe 类型的应用程序,我想要每个单元格的值,以便我可以找到该单元格是空的还是填充的。
int chance = 0;
int[] pos = new int[9];
public void click(View view) {
ImageView counter = (ImageView) view;
if(chance == 0) {
counter.setImageResource(R.drawable.yellow);
chance = 1;
// Here I want to update the that this particular cell is
clicked and it should be updated in pos array.
}
else {
counter.setImageResource(R.drawable.red);
chance = 0;
// Similarly here also it should be updated.
}
}
您可以在 GridView
上使用 onItemClickListener
并在 onItemClick
方法中执行您的任务。
例如,将此添加到您的 Activity class:
yourGridViewObject.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
if(chance==0)
{
counter.setImageResource(R.drawable.yellow);
chance = 1;
pos[position]=*updated value*;
}
else
{
counter.setImageResource(R.drawable.red);
chance = 0;
pos[position]=*updated value*;
}
your_adapter_object.notifyDataSetChanged();
}
});
希望对您有所帮助。
您可以在布局 xml 文件中为网格布局中的每个组件使用标签,例如:
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:onClick="dropIn"
android:tag="0" />
然后使用.getTag()
函数获取组件
counter.getTag().toString()
我在Android Studio 中定义了一个GridView,我想获取每个单元格的行值和列值。基本上我正在构建一个 Tic Tac Toe 类型的应用程序,我想要每个单元格的值,以便我可以找到该单元格是空的还是填充的。
int chance = 0;
int[] pos = new int[9];
public void click(View view) {
ImageView counter = (ImageView) view;
if(chance == 0) {
counter.setImageResource(R.drawable.yellow);
chance = 1;
// Here I want to update the that this particular cell is
clicked and it should be updated in pos array.
}
else {
counter.setImageResource(R.drawable.red);
chance = 0;
// Similarly here also it should be updated.
}
}
您可以在 GridView
上使用 onItemClickListener
并在 onItemClick
方法中执行您的任务。
例如,将此添加到您的 Activity class:
yourGridViewObject.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
if(chance==0)
{
counter.setImageResource(R.drawable.yellow);
chance = 1;
pos[position]=*updated value*;
}
else
{
counter.setImageResource(R.drawable.red);
chance = 0;
pos[position]=*updated value*;
}
your_adapter_object.notifyDataSetChanged();
}
});
希望对您有所帮助。
您可以在布局 xml 文件中为网格布局中的每个组件使用标签,例如:
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_margin="10dp"
android:onClick="dropIn"
android:tag="0" />
然后使用.getTag()
函数获取组件
counter.getTag().toString()