我很难弄清楚如何在当前活动中简单地从类(不是活动)中调用和运行方法。
我当前的代码:
CustomListViewAdapter.java(其他类)
public void onClick(View v) {
int position = Photos.listView.getPositionForView(v);
Log.v("value ", "tada" + position);
Photos photos = new Photos();
photos.deletePhoto(position);
}
});
照片.java(我当前的活动类)
public void deletePhoto(int pos){
Toast.makeText(thisActivity, "delete index:"+pos , Toast.LENGTH_SHORT).show();
mylist.remove(pos);
setupListView();
}
问题是,这种方法产生了mylist的一个新实例,这给了我一个越界的错误。如何正确地执行此操作,以便获取当前活动并相应地进行更新?
如果您不想要静态方法,可以在接口中创建。
public interface DeleteInterface {
public void deletePhoto(int position);
}
然后在适配器的构造函数中。。。
private DeleteInterface mInterface;
public CustomListAdapter(/* other paramaters */ DeleteInterface interface) {
// other assignments
mInterface = interface;
}
然后在你的活动中。。。
public class Photos extends Activity implements DeleteInterface {
// your code here
public void deletePhoto(int pos) {
// your method here
}
}
但是,请确保在创建Adapter时,有一个指向当前"活动"的指针,并将其传递给Adapter的构造函数。
最后但同样重要的是。。。
在适配器中,调用mInterface.deletePhoto(position);
以调用"活动"的方法。