文字列を代入し、色を付けたTextViewを一覧にして表示するSimpleAdapterのsample codeです。
main.xmlは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/TextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</TextView>
</LinearLayout>
Javaのcodeは次のとおりです。
public class SimpleAdapterActivity extends ListActivity{
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String sFrom[] = {"String", "Color"};
int iTo[] = new int[]{R.id.TextView, R.id.TextView};
ArrayList<Map<String, Object>> data =new ArrayList<Map<String, Object>>();
SimpleAdapter sa;
SimpleAdapter.ViewBinder savb;
savb = new SimpleAdapter.ViewBinder(){
@Override
public boolean setViewValue(View view, Object data, String s){
if(view.getId()==R.id.TextView){
TextView tv;
tv = (TextView)view;
if(data.getClass().equals(String.class)==true){
String sData;
sData = (String)data;
tv.setText(sData);
return true;
}
if(data.getClass().equals(Integer.class)==true){
Integer iData;
iData = (Integer)data;
tv.setBackgroundColor(iData.intValue());
return true;
}
}
return false;
}
};
//適当にデータを作成する。
Map<String, Object> m;
m = new HashMap<String, Object>();
m.put("String", "Red");
m.put("Color", 0xffff0000);
data.add(m);
m = new HashMap<String, Object>();
m.put("String", "Green");
m.put("Color", 0xff00ff00);
data.add(m);
m = new HashMap<String, Object>();
m.put("String", "Blue");
m.put("Color", 0xff0000ff);
data.add(m);
sa = new SimpleAdapter(this, data, R.layout.main, sFrom, iTo);
sa.setViewBinder(savb);
setListAdapter(sa);
}
}
0 件のコメント:
コメントを投稿