0

セクションヘッダーのリストビューを実装しました。ここでは、3つのテキストビューをアイテムとして含むレイアウトを膨らませています。これを実現するために、この例をここで参照しました。

私のコードは

adapter.addSection(monthitems2[l], new SimpleAdapter(this, security, R.layout.phone_row, 
                new String[] {"Title", "Caption","val1" }, new int[] { R.id.tvContact, R.id.tvMobile,R.id.tvMail }));

ID「R.id.tvContact」のテキストの色を変更する必要があるという条件があります。レイアウトのどこにもテキストビューを定義していません。simpleadapterパラメータと呼んでいます。テキストビューの色を変更する方法のデフォルトは白です。どんな提案の答えも大歓迎です。

4

1 に答える 1

2

参照チュートリアルから、あなたは持っています

SeparatedListAdapter adapter = new SeparatedListAdapter(this);  
adapter.addSection("Array test", new ArrayAdapter<String>(this,  
        R.layout.list_item, new String[] { "First item", "Item two" }));  
adapter.addSection("Security", new SimpleAdapter(this, security, R.layout.list_complex,   
        new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));  

ListView list = new ListView(this);  
list.setAdapter(adapter);  
this.setContentView(list);  

TextView へのハンドルを取得し、そのハンドルから色を設定します。コードのこの時点で、コマンドを実行可能な b/c でメッセージ キューにポストする必要があります (これは、OnCreate が終了した後に発生します)。

list.Post(() => 
{
    TextView tv = list.FindViewById<TextView>(R.id.tvContact);

    tv.SetTextColor(Color.Red);
});

FindViewById をリストで修飾する必要はないと思います。b/c でコンテンツ ビューを設定します

this.setContentView(list);

(上記のコードは MonoDroid 用の C# であり、Java に簡単に変換できます)。

Java/Android でランナブルを投稿する: Androidでランナブル スレッドを実行するには?

runnables にポストすると、コードがメッセージ キューに配置されます。これは、Android の重要な文書化されていない構成要素です。ビューを変更するときにアクティビティから null 参照を取得するときはいつでも、最初のステップとしてこれを試してください。

于 2012-12-13T14:02:30.800 に答える