Можно ли вообще создать ListActivity во время выполнения без использования XML? Я пытаюсь создать представление списка из 8 элементов, чередующихся между четырьмя TextViews и четырьмя ToggleButton. Цель состоит в том, чтобы иметь вертикальный список с TextView , ToggleButton , TextView , ToggleButton , TextView , ToggleButton , TextView , ToggleButton
Вот мой код:
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 );
}
}
Когда я попробовал этот код, я получил представление списка всех выводимых элементов toString ():
android.widget.TextView@4376f760
android.widget.ToggleButton@437708c8
android.widget.TextView@43772b10
android.widget.ToggleButton@43772fa0
... т. д ...
Затем я попытался добавить TextView и ToggleButton, используя:
this.addContentView( textItems[i], widthLayout );
this.addContentView( toggleButtons[i], widthLayout );
в цикле for. Но получил исключение RuntimeException, у вашего контента должен быть атрибут id ListView: «android.R.id.list»
Буду признателен за любую помощь, и, если возможно, я бы хотел не использовать ссылки на XML.