如何在没有ListActivity的情况下实现ListView?(仅限使用活动)

TIM*_*MEX 42 android listview

我是新来的Android,我真的需要做这种方式(我认为是另一个这样做Activity),但任何人都可以告诉我一个简单的代码(只是onCreate()可以做法)Listview没有ListActivity

谢谢

Pat*_*fka 55

如果你有一个活动的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"
Run Code Online (Sandbox Code Playgroud)

然后在你的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();
      }
});
Run Code Online (Sandbox Code Playgroud)

  • 如何以及在何处定义OnItemClick方法? (4认同)
  • 这里没有"适配器"的定义,这会有所帮助 (3认同)

evi*_*ate 28

在res/layout/main.xml文件中包含以下资源:

<ListView
  android:id="@+id/id_list_view"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" />
Run Code Online (Sandbox Code Playgroud)

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);
  }
}
Run Code Online (Sandbox Code Playgroud)


cch*_*son 11

下面以编程方式创建一个简单的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);
}
Run Code Online (Sandbox Code Playgroud)