簡體   English   中英

Android Listview-獲取和更新element的元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM