2016-11-19 20 views
0

突出一個ListView的項目繼this post我這樣做:上開始

在我的ListView我設置所選項目的類似這樣的背景色:

<ListView 
    android:id="@+id/list_date" 
    android:choiceMode="singleChoice" 
    android:listSelector="#666666" 
/> 

當用戶單擊一個項目我的清單保持突出顯示,很好。

現在我想預選(亮點)。我試圖與在啓動列表中的項目:

list_date.performItemClick(list_date, 0, list_date.getItemIdAtPosition(0));

,但不起作用。我怎樣才能做到這一點?


最後的工作代碼:

TextView txtv,txtv2; 
arrayAdapter = new ArrayAdapter<String>(HistoryActivity.this, R.layout.row, R.id.textViewList, date) { 
      public View getView(int position, View convertView, ViewGroup parent) { 
       if (convertView == null) { 
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        convertView = inflater.inflate(R.layout.row, parent, false); 
       } 
       txtv = (TextView) convertView.findViewById(R.id.textViewList); 
       txtv.setText(date.get(position)); 
       if(position == 0){ 
        txtv.setBackgroundColor(Color.parseColor("#93581c")); 
        txtv2 = (TextView) convertView.findViewById(R.id.textViewList); 
       } 
       return convertView; 
      } 
     }; 

list_date.setAdapter(arrayAdapter); 

    list_date.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { 

      if (position!=0) 
        txtv2.setBackgroundColor(Color.TRANSPARENT); 
      ........ 
      ........ 
     } 
} 

回答

1

您可以手動應用背景顏色適配器:

arrayAdapter = new ArrayAdapter<String>(HistoryActivity.this, R.layout.row, R.id.textViewList, array) { 
     public View getView(int position, View convertView, ViewGroup parent) { 
      if (convertView == null) { 
       LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       convertView = inflater.inflate(R.layout.R.layout.row, parent, false); 
      } 
      TextView tv = (TextView) convertView.findViewById(R.id.textViewList); 
      tv.setText(array[position]); 
      if(position == 0) 
       tv.setBackgroundColor(Color.parseColor("#666666")); 
      return convertView; 
     } 
    }; 
+0

我更新了我的問題要問你,好像你的解決方案的工作,但只是一個一半。 – GMX

+0

不應將此代碼放在您的onItemClickListener中,它應該位於您的適配器的getView方法中。 – rhari

+0

哦,我該如何創建這個getView適配器?我唯一的適配器是這樣的:「arrayAdapter = new ArrayAdapter (HistoryActivity.this,R.layout.row,R.id.textViewList,array);」 – GMX