[英]Dynamic ListView in Android Studio: Selecting random element and update list view
[英]Android Listview - get and update element of element
我需要有關Android ListView的幫助。 我有一個簡單的清單,像這樣:
ArrayList<HashMap<String, String>> tracksList = controller.getAllTracksInfo();
//
if(tracksList.size()!=0){
//Set the User Array list in ListView
ListAdapter adapter = new SimpleAdapter( checkDB.this,tracksList, R.layout.simplerow, new String[] { "Title","Synchronized"}, new int[] {R.id.track_title, R.id.is_synchronized});
myList=(ListView)findViewById(R.id.tracksinfo_list);
myList.setAdapter(adapter);
但是在元素“ R.id.is_synchronized”中,我想做類似的事情:
if (R.id.is_synchronized.getText().equals(0)) {
R.id.is_synchronized.setText(synchronized)
}
我怎樣才能做到這一點?
非常感謝!
我總是為我的ListViews創建一個BaseAdapter。 因此,逐步介紹如何創建自己的適配器並使它工作。
public class MyCustomAdapter extends BaseAdaper {
private Activity activity;
private ArrayList<HashMap<String, String>> tracksList;
private static LayoutInflater inflater = null;
public MyCustomAdapter(Activity activity, ArrayList<HashMap<String, String>> tracksList) {
this.activity = activity;
this.trackList = trackList;
this.inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return trackList.size();
}
@Override
public Object getItem(int position) {
return trackList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
static class ViewHolder {
TextView title;
TextView isSynchronized;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.mycustomlayout, parent, false);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(R.id.track_title);
holder.isSynchronized = (TextView) convertView
.findViewById(R.id.is_synchronized);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(tracksList.getTitle());
holder.isSynchronized.setText(tracksList.isSynchronized());
//you can do here what ever you want with the textviews like check if its == 0 etc
}
}
如何使用它:
mylistView = (ListView) findViewById(R.id.);
adapter = new MyCustomAdapter(Activity.this,
tracksList);
mylistView.setAdapter(adapter);
有關更多信息,請搜索自定義列表適配器。 為什么要使用列表適配器? 好吧,您可以更好地控制顯示的內容,方式,時間。 如果您需要更復雜的列表,這不是問題。 您想要創建一個帶有按鈕,不同顏色的漂亮背景,沒問題,只需創建mycustomlayout.xml add添加所需的內容以及所需的方式。
PS-以上只是一個示例,它不是100%可用的代碼,您需要設置跟蹤列表並獲取所需的數據,然后創建mycustomlayout.xml。
如果要檢查資源中的字符串是否設置為“ 0”,請在活動中嘗試此操作getResources().getString(R.string.is_synchronized).equals("0")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.