2011-08-26 6 views
0

特定の行のListViewの背景を設定する方法。Android setbackgroundまたはテキストの色muticolumn Listviewの特定の行

ListView list = getListView(); 
    sd = new SimpleAdapter(this, routhPath, R.layout.route_path,new String[] {"routeCode","routeName","outlets" },new int[] { R.id.routeCode,R.id.routeName,R.id.outlets}); 
    list.setAdapter(sd); 
    list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    list.setSelected(true); 
    list.setTextFilterEnabled(true); 
    list.setItemsCanFocus(true); 
    list.setSelectionAfterHeaderView(); 

    if(isVisitedToVisitHeader()){ 
     if(defaultRoutePos != 0){ 
      Log.i("-----" ,"---defaultRoutePos---" + defaultRoutePos +" --count-- "+list.getChildCount()); 
      list.setItemChecked(defaultRoutePos, true); 
      // list.getChildAt(positions).setBackgroundColor(R.color.red); 
      //list.getChildAt(defaultRoutePos).setBackgroundColor(R.color.red); 
     } 
    } 

これは私がonCreate()で鼎午前0.Thisに一部を与えるSimpleAdapter .Here list.getChildCount()を使用して行っている.I私のコードです。

...事前

+0

不可のこの回答。独自の 'getView()'のきめ細かな制御が必要です。 'ListView'はビューをリサイクルし、現在表示されているもの(6項目前後)の外の位置は物理的に存在しないことを覚えておく必要があります。 'listview.getChildAt()'はN番目の* visible *の行を返しますので、位置は正しくマップされません。 – dmon

答えて

2

チェックアウトカスタムリストビューのこの例、また

Example

ベース `SimpleAdapter`を使用してStackOverflowの

StackOverflow Answer

+0

'SimpleAdapter'を使用してmuticolumnを使用しています。' SimpleAdapter'を使用することは可能ですか?私を助けてください – Piraba

1

パッケージcom.android.listactivityで

おかげで私を助けてください。

輸入android.app.Activity。 import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;

あなたが取得しようとすることができない場合:私は上記のようにカスタムアダプタを使用することをお勧めしますが、特定の位置の行

 if (s.startsWith("Windows7") || s.startsWith("iPhone") 
       || s.startsWith("Solaris")) { 

      imageView.setImageResource(R.drawable.no); 
     } else { 
      imageView.setImageResource(R.drawable.ok); 
     } 

     return rowView; 
    } 
} 

でanythngんでき

ここ
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class MySimpleArrayAdapter extends ArrayAdapter<String> { 
    private final Activity context; 
    private final String[] names; 

    public MySimpleArrayAdapter(Activity context, String[] names) { 
     super(context, R.layout.rowlayout, names); 
     this.context = context; 
     this.names = names; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = context.getLayoutInflater(); 
     View rowView = inflater.inflate(R.layout.rowlayout, null, true); 
     TextView textView = (TextView) rowView.findViewById(R.id.label); 
     ImageView imageView = (ImageView) rowView.findViewById(R.id.icon); 
     textView.setText(names[position]); 
     // Change the icon for Windows and iPhone 
     String s = names[position]; 

// list.getPositionForView(view)は、特定の位置の背景色またはイメージを設定します。

+0

NO.Its not working。私は 'SimpleAdapter'を使用してmuticolumnを使用しています。' SimpleAdapter'を使用することは可能ですか?助けてください – Piraba

+0

あなたはlist.getPositionForView(view)を取得し、希望の特定の位置の背景色や画像を設定しようとしました –

関連する問題