Как реализовать ListView без ListActivity? (Используйте только действие)

Я новичок в Android, и мне действительно нужно сделать это так (я рассмотрел это в другом Activity ), но может ли кто-нибудь показать мне простой код (просто метод onCreate() ), который может выполнять Listview без ListActivity ?

Благодаря

Solutions Collecting From Web of "Как реализовать ListView без ListActivity? (Используйте только действие)"

Если у вас есть 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(); } }); 

Добавьте в свой файл res / layout / main.xml следующий ресурс:

 <ListView android:id="@+id/id_list_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 

your_class.java

 import android.widget.ListView; import android.widget.ArrayAdapter; public class your_class extends Activity { private ListView m_listview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); m_listview = (ListView) findViewById(R.id.id_list_view); String[] items = new String[] {"Item 1", "Item 2", "Item 3"}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); m_listview.setAdapter(adapter); } } 

Следующее создает простой 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. Это дает вам некоторую гибкость в плане установки динамической высоты и ширины во время выполнения.

Включите в файл res / layout / main.xml следующий файл ресурсов

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" </ListView> </RelativeLayout> 

MainActivity.java

 public class MainActivity extends Activity { ListView listView; String[] listPlanet={"mercury","Venus","Mars","Saturn","Neptune"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView)findViewById(R.id.listView)); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listPlanet); listview.setAdapter(adapter); } }