ssummeraw 2013-06-27 07:39 采纳率: 10%
浏览 6290
已采纳

Activity 和 adapter之间的数据

我使用 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 中,如何获取改变了的数组?

  • 写回答

1条回答 默认 最新

  • 码密码密哄 2013-06-27 08:24
    关注

    没清楚你的意图,如果是Activity获取Adapter中的string[]的话,可以在adapter中对string[]写个public 的getter就好,Activity就能通过ListView.getAdadpter强转成BookmarkListAdapter,再调用getter方法就好了

    如果是Activity设置数据更新了的话,只需要重新设置下数据,notifyDataSet就OK了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?