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

Android 如何在没有ListActivity的情况下实现ListView?(仅使用活动),android,listview,Android,Listview,我是Android新手,我真的需要这样做(我已经考虑过在另一个活动中这样做了),但是有人能给我一个简单的代码(只需onCreate()方法)来做Listview,而不需要ListActivity 如果您有一个活动的xml布局,包括这样的列表视图,那就谢谢了 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout

我是Android新手,我真的需要这样做(我已经考虑过在另一个
活动中这样做了),但是有人能给我一个简单的代码(只需
onCreate()
方法)来做
Listview
,而不需要
ListActivity


如果您有一个活动的xml布局,包括这样的列表视图,那就谢谢了

<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"
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();
      }
});


您还可以引用布局,从代码中实例化布局对象,然后用Java构建ListView。这为您在运行时设置动态高度和宽度提供了一些灵活性

以下内容以编程方式创建简单的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);
}
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
String[]myList=新字符串[]{“Hello”、“World”、“Foo”、“Bar”};
ListView lv=新的ListView(本);
lv.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,myList));
setContentView(lv);
}

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

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

您的_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);
  }
}
导入android.widget.ListView;
导入android.widget.ArrayAdapter;
公共类您的_类扩展活动
{
私有ListView m_ListView;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
m_listview=(listview)findviewbyd(R.id.id_list_视图);
字符串[]项=新字符串[]{“项目1”、“项目2”、“项目3”};
阵列适配器=
新的ArrayAdapter(这是android.R.layout.simple_list_item_1,items);
m_listview.setAdapter(适配器);
}
}

在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>


嗨,切内森…当我遵循这段代码时,我在Eclipse中得到了一个“编辑源代码”(这意味着它不工作)。这是为什么?奇怪-我创建了一个新的android项目,复制/粘贴上面的内容,运行它没有任何问题。你能发布活动的全部代码吗?您在Eclipse中的“编辑源代码”是在哪里看到的?您有这个问题吗?我认为这是针对ListActivity的,而不是针对ActivityHow和where来定义OnItemClick方法?这里没有关于
适配器的定义helpful@PascalKlein从它是一个覆盖function@Webnet
new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,String items[])
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);

}

}