我有一个自定义适配器,在ListView图像上有一个单击侦听器.
此代码位于Adapter GetView中:
holder.iconImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//code to do stuff when the image is clicked
}
Run Code Online (Sandbox Code Playgroud)
列表视图中的图像由文件夹(表示文件夹)和实际图像组成.
因此,如果用户单击文件夹图像,我希望能够在ActivityA中调用名为"moveDownFolder"的方法.
我不确定这是否可以在适配器内部完成?
[编辑]基本上在ActivityA中我在自定义ListView上有一个Click Listener,所以如果他们点击自定义ListView中的文本,它会向下移动一个文件夹(如果它是一个文件夹).
但是,他们可以点击的图像在ListView,它会打开一个新的活动图像.但是,如果他们点击列表视图中的文件夹图标(当然是ImageView中的图像) - 我希望代码向下移动文件夹,而不是尝试打开图像.
我建议使用interface作为监听器.
例如:
1,创建你的界面:
public interface MyListener {
void folderClicked();
}
Run Code Online (Sandbox Code Playgroud)
2,让你的ActivityA像这样实现这个接口:
public class ActivityA extends Activity implements MyListener
Run Code Online (Sandbox Code Playgroud)
3,你将不得不自动覆盖方法文件夹点击它将如下所示:
@Override
protected void folderClicked() {
// Do your stuff here.
}
Run Code Online (Sandbox Code Playgroud)
4,使用如下构造函数将活动监听器发送到适配器:
MyAdpater adapter = new MyAdpater(ActivityA.this);
Run Code Online (Sandbox Code Playgroud)
5,在你的适配器类中,你的代码应该是这样的:
public class TimeLineAdapter extends BaseAdapter {
private MyListener mListener;
public TimeLineAdapter(MyListener listener) {
super();
mListener = listener;
}
holder.iconImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onFolderClicked()
//code to do stuff when the image is clicked
}
Run Code Online (Sandbox Code Playgroud)