繁体   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