制作一个列表视图,如android中的本机拨号器上的收藏夹选项卡

时间:2010-02-16 20:07:14

标签: android listview listactivity

我正在创建一个显示用户列表的Android应用程序,我想在列表的每一行添加图像,名称,状态和按钮,就像在机器人1.6本机调用者中一样 - >收藏夹选项卡。直到知道我已经设法使用ListActivity添加图像和名称但是当我尝试添加按钮时,列表变为未选中。所以我有2个问题,首先是上面提到的listviews或listactivities列表?也可以使用listActivity吗?第二,上述课程的区别是什么?任何教程链接都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要扩展ListActivity和ListAdapter才能实现您的设计。显示列表的活动应该扩展ListActivity而不是Activity。在ListActiviry的onCreate方法中,您的活动的内容视图应设置为线性布局,该布局是列表视图的父级。列表视图必须具有id“@ + id / android:list”。您还可以在列表为空时包含要显示的文本视图,请参见下文。同样在OnCreate中调用setListAdapter()并传入一个扩展了ListAdapter的新对象。

在您扩展ListAdapter的类中,覆盖您需要的所有方法,尤其是getView()。

示例代码:

MyListActivity.java

import android.app.ListActivity;
public class MyListActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_list);
        setListAdapter(new MyListAdapter());
    }
}

my_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android:="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <ListView android:id="@+id/android:list"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content" />
    <TextView android:id="@+id/android:empty"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:text="No Events!"/>
</LinearLayout>

MyListAdapter.java

import android.widget.ListAdapter;

public class MyListAdapter implements ListAdapter {
  //Methods to load your data

  public View getView(int arg0, View reuse, ViewGroup parent) {
    //Create the view or if reuse is not null then reuse it.
    //Add whatever kind of widgets you want here and return the view object
  }
}