程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-Activity 和 adapter之間的數據

android-Activity 和 adapter之間的數據

編輯:編程綜合問答
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 中,如何獲取改變了的數組?

最佳回答:


沒清楚你的意圖,如果是Activity獲取Adapter中的string[]的話,可以在adapter中對string[]寫個public 的getter就好,Activity就能通過ListView.getAdadpter強轉成BookmarkListAdapter,再調用getter方法就好了

如果是Activity設置數據更新了的話,只需要重新設置下數據,notifyDataSet就OK了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved