我有一个带有getView的类,它处理将删除Arraylist中的数据的onclick侦听器,这是另一个在活动中扩展的类,问题是它返回一个空指针。
这是我处理Arraylist的活动
public ArrayList<String> imagesFileName = new ArrayList<String>();
public ArrayList<HashMap<String, String>> mylist;
//method for deleting data in array list and will going to use in another class
public void deleteFile(int i){
imagesFileName.remove(i);
mylist.remove(i);
adapter.notifyDataSetInvalidated();
}
这是我的类,它包含一个getView(),并将使用我在活动中声明的方法
Activity activity = new Activity();
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View rowView = null;
try{
rowView = inflater.inflate(resource, null, true);
TextView textViewTitle = (TextView) rowView.findViewById(to[0]);
EditText textViewSubtitle = (EditText) rowView.findViewById(to[1]);
TextView textViewSubtitle1 = (TextView) rowView.findViewById(to[2]);
TextView textViewSubtitle2 = (TextView) rowView.findViewById(to[3]);
final TextView textViewSubtitle3 = (TextView) rowView.findViewById(to[4]);
TextView textViewId = (TextView) rowView.findViewById(to[5]);
final String id = textViewId.getText().toString();
textViewSubtitle3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
activity.deleteFile(id);//here is my method in my Activiy
}
});
当我在同一个活动中使用该方法时,它可以正常工作。但是当我将它用于另一个类时,它会返回一个indexoutofbounds。
答案 0 :(得分:3)
我终于弄清楚我需要的是在一个页面中加入我的Activity和Class,以便Class能够访问我的数组列表。
答案 1 :(得分:0)
deleteFile()的参数类型是整数,但是你通过在getView()函数中传递字符串来调用它。您可以先检查此问题。
答案 2 :(得分:0)
就个人而言,我会将数组放在共享首选项中。这意味着您将以标准且易于理解的方式访问数据。