我使用 BaseAdapter 来显示 ListView 的行数。 Activity 和adapter 在两个不同的类中创建。
在 ListActivity 中,我使用下面的代码设置行中的数据。
String[] FileName = {"a", "b", "c"};
MyAdapter a = new MyAdapter(this, FileName);
setListAdapter(a);
在adapter中的每一行里都显示FileName,但是它可能改变 FileName。所以在 activity 中,我想获取改变了的 FileName 数组。
如何实现?
Adapter 代码:
private String[] name = null;
public BookmarkListAdapter(Context ctxt, String[] s) {
name = s;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewTag viewTag;
if(convertView == null) {
convertView = myInflater.inflate(R.layout.row_bookmark_list, null);
viewTag = new ViewTag((TextView)convertView.findViewById(R.id.row_bookmark_info));
convertView.setTag(viewTag);
}
else {
viewTag = (ViewTag) convertView.getTag();
}
viewTag.n.setText(name[position]);
name[position] = name[(position + 1) % 3]; //change
}
class ViewTag {
TextView n;
public ViewTag(TextView t) {
this.n = t;
}
}
在这个例子中,数组改变成{"b", "c", "a"}。在 activity 中,如何获取改变了的数组?