Я плохо знаком с Android, и я действительно должен сделать это этот путь (я рассмотрел выполнение его в другом Activity
), но может любой показывать мне простой код (просто onCreate()
метод), который может сделать Listview
без ListActivity
?
Спасибо
Ниже приведено создание простого ListView программным путем:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] myList = new String[] {"Hello","World","Foo","Bar"};
ListView lv = new ListView(this);
lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myList));
setContentView(lv);
}
Вы также можете ссылаться на свой макет, создать экземпляр объекта макета из вашего кода, а затем построить ListView на Java. Это дает вам некоторую гибкость с точки зрения установки динамической высоты и ширины во время выполнения.
Если у вас есть xml-макет для активности, включающий listView, как здесь
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="fill_parent"
Тогда в onCreate вы можете сделать что-то вроде этого
setContentView(R.layout.the_view);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, myList);
ListView lv = (ListView)findViewById(android.R.id.list);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> a, View v,int position, long id)
{
Toast.makeText(getBaseContext(), "Click", Toast.LENGTH_LONG).show();
}
});