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