如何在网格布局中获取行和列值?

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()