2011-08-12 9 views
0

メモ帳チュートリアルコードhttp://developer.android.com/resources/tutorials/notepad/notepad-ex1.htmlを変更しました。コンテンツに基づいてリストビューの各項目の背景色を設定するには

基本的には、コンテンツに基づいてListView内のさまざまな行の特定のレイアウトスタイル(背景色)を作成することです。たとえば、タイトルのテキストは「1」なので、その行の背景は赤色になります。または、タイトルのテキストが "2"の場合、その行(またはリスト項目)の背景は緑色になります。

私が達成しようとしているのは、データベース内の行の要約を作成し、アイテムが格納されているカテゴリ(数値フィールド)に基づいて各行を色分けすることです。

答えて

0

これらはSimpleCursorAdapterを使用しており、出力を変更するには独自のものを作成する必要があります。データの表示を扱うアダプタでは、getView()メソッドをオーバーライドすることができます。次に、各行にdbのデータを入力します。また、データに応じて、異なる背景色を設定します。

public View getView(int position, View convertView, ViewGroup parent) { 
    View v = convertView; 
    if (v == null) { 
     LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = inflater.inflate(R.layout.my_layout, null); 
    } 
    Cursor.moveToPosition(position); 
    ImageView img = (ImageView)v.findViewById(R.id.bg); 

    if (Cursor.getString(Cursor.getColumnIndex("column")).equals("black")) { 
     img.setImageBackground(Color.Black); 
    } 

    return v; 
+0

ありがとう、私はこれに似ていますが、これに似たサンプルコードまたはチュートリアルがありますか?私はAndroid開発に非常に新しいので、どのような例も非常に役に立ちます。 –

+0

遅れて申し訳ありません。あなたはおそらくアダプタの問題をおそらく解決しているでしょう。私は有益な文書http://www.slideshare.net/peterbuck/getting-fancy-with-listsへのリンクを渡すでしょう。参考までに、彼らはSimpleCursorAdapterのコンストラクタの1つを廃止したことに気付きました。 – nahwarang

+0

ありがとう、私は今これに着いている、私は見てみましょう。 –

0

ファワン氏の答えが正しい。また、getItemメソッドを使用して、リストの特定の位置にあるアイテムを取得して、そのデータのタイプを判別することもできます。次に、getViewメソッドでその行の背景色を変更します

関連する問題