私はプロジェクト用のゲームロビーを作成しようとしていますが、ゲームのステータステキストを「[進行中]」ゲームでは赤、「[IN PROGRESS]」ゲームでは緑、「[Waiting for xプレイヤー]」と表示されます。 ListViewにはデータが入力され、各ListViewアイテムにはゲームIDが割り当てられ、その直後にゲームのステータスが表示されます。ListView内のTextViewのテキストの色を動的に変更しますか?
今、私は基本的にHello ListViewコードを使用してListViewを作成しています。
(コンストラクタで)
ArrayList<HashMap<String, String>> gameList = new ArrayList<HashMap<String, String>>();
private ListView gamesListView;
private SimpleAdapter gameItems.
()(のonCreateで)
gamesListView = (ListView) findViewById(R.id.listViewGames);
gameItems = new SimpleAdapter(this, gameList, R.layout.gamelistitem,
new String[] { "line1, "line2},
new int[] { R.id.tvGameID, R.id.tvGameStatus });
gamesListView.setAdapter(gameItems);
その後、私は私達のデータベースからデータを取得し、更新ボタンを持っています。 2つのストリングが得られます.1つはゲームのID、もう1つはゲームのステータスです。ゲームのステータスが0の場合、まだプレイヤーを待っています。ゲームのステータスが1の場合、ゲームが開始されました。ですから、gameListを作成してgameListに追加します:
HashMap<String, String> gameItem = new HashMap<String, String>();
gameItem.put("line1", gameIDString);
gameItem.put("line2", renderGameStatus(gameStatusString));
gameList.add(gameItem);
gameItems.notifyDataSetChanged();
private String renderGameStatus(String statusString) {
if (statusString.equals("0")) {
return "[Waiting for players]";
} else {
return "[IN PROGRESS]";
}
}
これは私が立ち往生した場所です。私は、gameItemを作成するとき、またはそれをgameListに追加するときに、特定のTextViewをどのように変更できるかわからない。 TextViewのプロパティにアクセスする方法はわかりません。文字列を "line1"と "line2"にマッピングすることによって、ビューのテキストがどのように設定されるのかを確認しますが、プロパティの変更方法はわかりません。
ありがとうございました!
残念ながら、それはListViewのすべてのTextViewの色を変更するだけではありませんか?私はリストビュー内の各特定のTextViewの色を変更するために探しています。 – Rockmaninoff
hmm今、私は理解しています。既に試してみましたかどうかはわかりませんが、作成したリストやものをフルコントロールするためにBaseAdapterを実装することについて覚えています。あなたはそれを見てください。がんばろう – dds