以编程方式突出显示listView选择背景

时间:2016-03-02 01:19:31

标签: android android-layout listview

我有一个带有简单ArrayAdapter的ListView

dogsList.setAdapter(new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, dogsArray));

如果用户点击某个项目,则背景颜色会发生变化。到目前为止一切都很棒。

这是我的问题:当用户返回时,我想预先突出显示最后一个选择。我已经尝试了许多事情来预先突出显示其中一个条目,但它不起作用。

假设我知道之前的选择并通过意图或其他方式传递,比如prev=5。我如何高亮背景?

我正在使用真实设备(注5)进行测试。我不明白这是否适用:Android ListView programmatic selection/highlight。无论如何,我做到了它并没有奏效:没有亮点。

1 个答案:

答案 0 :(得分:0)

可能会有所帮助

  View row = null;

   list_view.post(new Runnable() {
        @Override
        public void run() {
            int nPos = Prev;

            list_view.setSelection(nPos);
            View v = list_view.getChildAt(nPos);
            if (v != null) {
                option_list.performItemClick(v, nPos, list_view.getItemIdAtPosition(nPos));
                v.requestFocus();
            }
        }
    });
  list_view.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View v, int position,
                long arg3) {
            // TODO Auto-generated method stub

             if (row != null) {
                    row.setBackgroundResource(R.color.DarkGray);
                }
                row = v;
                v.setBackgroundResource(R.color.White);
        }
    });