[英]Android Calling Custom Adapter Methods within MainActivity
下面的代码存在于我的主要活动中。 我想知道它们是否是一种方法,可以使用传递到gridview.setAdapter()函数中的GridAdapter实例来调用方法。
GridAdapter负责用图像填充gridview。 单击时,我想获得它的位置以及GridAdapter中的一些数据。
// create a new GridView object
GridView gridview = this.findViewById(R.id.gridView);
gridview.setAdapter(new GridAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id)
{
thisGridAdapter.someMethod(position); //what I want to do
Log.d("gridView", String.valueOf(position));
TextView tv = findViewById(R.id.textView);
tv.setText(String.valueOf(position));
}
});
将其分配给变量?
final GridAdapter adapter = new GridAdapter(this);
GridView gridView = findViewById(R.id.gridView);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
adapter.someMethod(position);
}
});
或者,使用GridView#getAdapter()
方法并将其GridView#getAdapter()
为您的适配器类:
final GridView gridView = findViewById(R.id.gridView);
gridView.setAdapter(new GridAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
((GridAdapter) gridView.getAdapter).someMethod(position);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.