2016-03-02 82 views
0

我有一个简单的ArrayAdapter突出显示的ListView选择背景编程

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

如果用户点击一个项目,背景颜色变化的ListView。到目前为止非常棒。

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

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

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

回答

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); 
     } 
    });