在我的应用程序中,我有两个10x10网格,它们有不同的适配器。当我点击第一个网格上的项目时,它应该在第一个和第二个网格上更改图形。
battleField = (GridView) findViewById(R.id.gridView1);
battleField2 = (GridView) findViewById(R.id.gridView2);
battleField.setAdapter(new ImageAdapter(getApplicationContext()));
battleField2.setAdapter(new ImageAdapter2(getApplicationContext()));
battleField2.setEnabled(false);
battleField.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view1, int position, long id) {
Toast.makeText(SendobjectActivity.this, "" + position, Toast.LENGTH_SHORT).show();
ImageView img = (ImageView)view1;
img.setImageResource(R.drawable.trafiony1);
//HERE IS THE PROBLEM
battleField2.performItemClick(view2, position, id);
}
});
battleField2.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view2, int position, long id) {
Toast.makeText(SendobjectActivity.this, "" + position, Toast.LENGTH_SHORT).show();
ImageView img2 = (ImageView)view2;
img2.setImageResource(R.drawable.trafiony2);
}
});
我为两个网格实现了onItemClickListener。当单击第一个网格上的项目时,它的图形更改和id就像调用performItemClick方法在第二个网格上执行相同操作。不幸的是,我不知道如何查看我的第二个网格。有什么想法吗?
答案 0 :(得分:1)
将作业委派给单独的方法,并在onClickListener
中调用这些方法,而不是直接执行作业。例如,而不是:
battleField2.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view2, int position, long id) {
Toast.makeText(SendobjectActivity.this, "" + position,
Toast.LENGTH_SHORT).show();
ImageView img2 = (ImageView)view2;
img2.setImageResource(R.drawable.trafiony2);
}
});
做类似的事情:
battleField2.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view2, int position, long id) {
doTheJob( parent, view2, position, id );
}
});
protected void doTheJob(AdapterView<?> parent, View view2, int position, long id) {
Toast.makeText(SendobjectActivity.this, "" + position,
Toast.LENGTH_SHORT).show();
ImageView img2 = (ImageView)view2;
img2.setImageResource(R.drawable.trafiony2);
}
和其他听众一样。然后,如果你需要做两个工作,只需调用相应的方法。
或(如果可能的话)将您的听众变成一个。