この単純なコードを使用して、2 つのテキスト ビューを含むカスタム行を作成しています。行は明らかに移入されていますが (ハッシュマップが 2 つの文字列値を保持していることをトーストが示しているため)、リスト内の行は空白に見えます。変ですね。その理由は何ですか?
public class TwoHeaded extends ListActivity {
ArrayList<Map<String, String>> doubleDamage = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
doubleDamage = buildData();
String[] from = {"platform","os"};
int[] to = {R.id.tvTwoPlatform, R.id.tvTwoOs};
SimpleAdapter adapter = new SimpleAdapter(this, doubleDamage,
android.R.layout.simple_list_item_2, from, to);
setListAdapter(adapter);
}
private ArrayList<Map<String, String>> buildData(){
ArrayList<Map<String, String>> list = new ArrayList<Map<String, String>>();
list.add(putData("Android", "Jelly Bean"));
list.add(putData("Microsoft", "Windows"));
list.add(putData("Apple","Macintosh"));
return list;
}
private HashMap<String, String> putData(String platform, String os){
HashMap<String, String> item = new HashMap<String, String>();
item.put(platform, os);
return item;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(this, doubleDamage.get(position).toString(), Toast.LENGTH_SHORT).show();
}
}
2 つのテキスト ビューを含むレイアウト ファイルを次に示します。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvTwoPlatform"
android:layout_alignParentTop="true"
android:layout_marginLeft="25dp" >
<TextView
android:id="@+id/tvTwoPlatform"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="?android:attr/listPreferredItemPaddingLeft"
android:layout_marginTop="8dip"
android:text="text For Platform "
android:textAppearance="?android:attr/textAppearanceListItem" />
<TextView
android:id="@+id/tvTwoOs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@android:id/text1"
android:layout_below="@android:id/text1"
android:text="text For Os"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>