2016-03-02 86 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); 
     } 
    });