我不确定标题是否合适,但我会尽力解释得更好。
我想在我的布局中显示网格。为此,我使用自定义的 ArrayAdapter。 我不知道如何为每个项目设置 onClickListener...
布局包含一个用于显示名称的标签和一个 GridView 。
这是我的 Activity :
public class Sala extends Activity{
GridView gridView;
TextView label_name;
ArrayList<String> lista_opciones = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_sala);
//Refresh the name in the label
Bundle bundle=getIntent().getExtras();
String name= bundle.getString("name");
label_name= (TextView) findViewById(R.id.label_name);
label_name.setText(name);
//Loading array
lista_op.add("Op 1");
lista_op.add("Op 2");
lista_op.add("Op 3");
lista_op.add("Op 4");
//AdaptadorOpciones
ArrayAdapterOpciones mAdapter = new ArrayAdapterOptions(this,lista_op);
//Set the customAdapter to the grid
gridView = (GridView) findViewById(R.id.grid);
gridView.setAdapter(mAdapter);
}
}
我应该重写 Witch 方法来实现每个项目中的 onClickListener 吗?
最佳答案
为gridview项目点击实现setOnItemClickListener:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_sala);
//Refresh the name in the label
Bundle bundle=getIntent().getExtras();
String name= bundle.getString("name");
label_name= (TextView) findViewById(R.id.label_name);
label_name.setText(name);
//Loading array
lista_op.add("Op 1");
lista_op.add("Op 2");
lista_op.add("Op 3");
lista_op.add("Op 4");
//AdaptadorOpciones
ArrayAdapterOpciones mAdapter = new ArrayAdapterOptions(this,lista_op);
//Set the customAdapter to the grid
gridView = (GridView) findViewById(R.id.grid);
gridView.setAdapter(mAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
//Do stuff here
}
});
}
关于android - myActivity 扩展 GridView 实现 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308065/