XMLを使用せずに実行時にListActivityを完全に作成することは可能ですか?私は、4つのTextViewと4つのToggleButtonsの間で交互に8つの項目を持つリストビューを作成しようとしています。目標トグルボタン、TextViewの、トグルボタン、、トグルボタン、TextViewの、のTextView垂直リストを持っているあるTextViewの、トグルボタン実行時作成ビューをXMLなしでListActivityに追加する方法
は、ここに私のコードです:
私はこのコードを試してみたpublic class MyActivity extends ListActivity implements OnCheckedChangeListener
{
private ViewGroup.LayoutParams widthLayout = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
private TextView[] textItems = new TextView[ 4 ];
private ToggleButton[] toggleButtons = new ToggleButtons[ 4 ];
private static final int ID_BASE = 5550; // unique ID for this activity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupView();
}
//
private void setupView() {
Vector v_itemList = new Vector();
for (int i=0; i < 4; i++) {
int t_color = 0xFFFFFF;
//
textItems[i] = new TextView(this);
textItems[i].setText(""+i+". text line");
textItems[i].setColor(t_color);
t_color -= 0x220022;
//
toggleButtons[i] = new ToggleButton(this);
toggleButtons[i].setTextOff(""+i+". Off");
toggleButtons[i].setTextOn("On ("+i+")");
toggleButtons[i].setId(ID_BASE+i);
toggleButtons[i].setChecked(i%2 == 1 ? true : false);
toggleButtons[i].setOnCheckedChangeListener(this);
//
v_itemList.addElement(textItems[i]);
v_itemList.addElement(toggleButtons[i]);
}
ArrayAdapter listItemAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, v_itemList);
this.setListAdapter(listItemAdapter);
}
}
、Iすべての要素のtoString()出力のリストリストビューを取得: [email protected]376f760 [email protected] [email protected] [email protected] ...電気ショック療法...
私はその後、使用のTextViewとトグルボタンを追加しようとしました:のためのループ内
this.addContentView(textItems[i], widthLayout);
this.addContentView(toggleButtons[i], widthLayout);
を。しかし、RuntimeExceptionが発生しました。あなたのコンテンツには、リストビューのID属性が 'android.R.id.list'でなければなりません。
助けていただければと思います。可能であればXMLへの参照を避けたいです。
XMLを使用できない理由を知りたいですか? – user432209
私は、実行時に静的なXMLの無秩序化に頼らずに調整可能な柔軟なUIを作成する方法を学ぼうとしています。プログラム的なUIを学ぶと、XMLがケーキになります。 – kralvarado