2012-01-12 10 views
2

私は関連する回答を見ましたが、私には適切なものはありません。 私はlistViewを持っていて、各行はtextviewを持っています。私はコードを以下に示します:各リストビューの行に異なる色を設定しました

public class TrailsConditionScreen extends ListActivity { 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     seeTrails(); 
    } 
private void seeTrails() { 
    String[] help=new String[] {"foo","bar"}; 
    ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.row,R.id.text1,help); 
    setListAdapter(adapter); 
} 
(私はDBからデータを取得しているとします。

} これまでのところ、このコードはリストに表示しています。

これで、dbから値を取得するときに、各行に異なる色を設定することができます。私のコードが、リストビューの最初の行に適切な色を設定した場合、最初の行を読むときに必要なテーブルからデータを取得することを想像してください。その後、データベースの2番目の孤独に行く、リストの2番目の行の色を設定するなど..私は正常にデータベースからの読み取りを実装しているが、私は特定の行に色を設定する方法がわからない。擬似コードでは、このように見えます。

for i=0 to number of lines in db{ 
    read_data(); 
    if key_value=0 then color_of_line(i)=red; 
    else color_of_line_i)=green; 
} 

これに関するヘルプはありますか?

答えて

7

ArrayAdapterを使用する代わりに、これを処理するカスタムアダプタを作成する必要があります。 ArrayAdapterを拡張し、getViewメソッドをオーバーライドします。そしてのgetViewメソッドの条件に基づいて、あなたのテキストの色を変更することができますtextView.setTextColor

カスタムアダプタを作成するにはtutorialをチェックしてください(6.チュートリアル:独自のアダプタの実装)。この例ではホルダーパターンは使用しませんが、そうする必要があります。私はどうなるのか

2

あなたの最善の策は、ArrayAdapterを拡張して独自のクラスを作成することです。

getView()メソッドでは、条件を実行して描画する色を設定します。独自のアダプターを作成するためのチュートリアルがたくさんあります。たとえば、http://www.ezzylearning.com/tutorial.aspx?tid=1763429&q=customizing-android-listview-items-with-custom-arrayadapterを確認します。

希望すると助かります!

0

は、リストビュー

public class MyCustomAdapter extends BaseAdapter 

のために、あなたがポジションを持っているとあなたが欲しいものは何でも変更することができ

public View getView(int position, View convertView, ViewGroup parent) 

funcionでCustomAdapterを作成することです。

カスタムアダプタのリストビューでGoogleで検索した場合、あなたがこれを達成するためにいくつかの例

2

INORDERを取得するには、カスタムアダプターを使用する必要があります。あなたが言及して以来、あなたはデータベースからデータを取得しています、私はあなたがカーソルアダプタの情報を持っていることをここで仮定しています。したがって、カーソルアダプタを拡張するのがよいでしょう。

新しいカスタムアダプターでは、getView()メソッドをオーバーライドする必要があります。リストビューの各項目に使用されるビューは、そこに指定されています。また、ビューのプロパティを設定することもできます。

ビジネスロジックによっては、getViewでテキストの色を設定する必要があります。

ここではチュートリアル:はい、これはアイテムが唯一の静的ではなく動的なコンテンツのためにそれを行うのは難しい場合にのみ、別のリスト項目については http://www.ezzylearning.com/tutorial.aspx?tid=1763429&q=customizing-android-listview-items-with-custom-arrayadapter

-1

別の色を達成することができます...

関連する問題