我正在努力弄清楚如何在我当前的活动中简单地从一个类(不是一个活动)调用和运行一个方法。
我目前的代码:
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);
}
});
Photos.java (我当前的活动类)
public void deletePhoto(int pos){
Toast.makeText(thisActivity, "delete index:"+pos , Toast.LENGTH_SHORT).show();
mylist.remove(pos);
setupListView();
}
问题是,这种方式做了一个新的mylist实例,它给了我一个outofbounds错误。如何正确执行此操作以便我获取当前活动并相应地更新它?
答案 0 :(得分:0)
如果您不想要静态方法,可以在界面中创建。
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
}
}
但请确保在创建适配器时,您有一个指向当前Activity的指针并将其传递给Adapter的构造函数。
最后但并非最不重要......
在适配器中,请致电mInterface.deletePhoto(position);
以调用您的活动方法。