如何在不扩展列表 Activity 的情况下创建自定义列表视图?
How to Create a Custom Listview without extending List Activity?
我想创建一个包含图像和文本的自定义布局的列表视图
但是我找到的所有教程都扩展了 List Activity 但我无法扩展 List Activity 因为我需要向布局添加按钮和其他内容。
我需要使用自定义项目布局的 ListView
有什么想法吗?
您不一定要使用 ListActivity
才能在您的布局中拥有 ListView
。所有使用 ListActivity
的样本都在那里,因为人们很懒惰 ;)
因此只需使用常规 Activity
,然后只需将 ListView
添加到您设置为内容视图的布局中即可。这可能看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0"
android:layout_weight="1" />
<Button
android:id="@+id/somethingButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Do something" />
<Button
android:id="@+id/elseButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Do something else" />
</LinearLayout>
然后在您的 OnCreate
方法中像任何其他 Activity
一样:
SetContentView(Resource.Layout.myLayout); // myLayout.axml
var listView = FindViewById<ListView>(Resource.Id.listView);
listView.Adapter = new MyAdapter(context, itemsSource);
var somethingButton = FindViewById<Button>(Resource.Id.somethingButton);
var elseButton = FindViewById<Button>(Resource.Id.elseButton);
... more code ...
ListView
和其他布局一样只是一个布局,所以它没有什么神奇之处。 MyAdapter
在这个示例中当然是您实现的东西,它获取您的数据并以所需的图像和文本布局呈现它。
有关 ListView
和 Adapter
的更多信息,请 refer to the excellent documentation which Xamarin provides。
我想创建一个包含图像和文本的自定义布局的列表视图
但是我找到的所有教程都扩展了 List Activity 但我无法扩展 List Activity 因为我需要向布局添加按钮和其他内容。 我需要使用自定义项目布局的 ListView
有什么想法吗?
您不一定要使用 ListActivity
才能在您的布局中拥有 ListView
。所有使用 ListActivity
的样本都在那里,因为人们很懒惰 ;)
因此只需使用常规 Activity
,然后只需将 ListView
添加到您设置为内容视图的布局中即可。这可能看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0"
android:layout_weight="1" />
<Button
android:id="@+id/somethingButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Do something" />
<Button
android:id="@+id/elseButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Do something else" />
</LinearLayout>
然后在您的 OnCreate
方法中像任何其他 Activity
一样:
SetContentView(Resource.Layout.myLayout); // myLayout.axml
var listView = FindViewById<ListView>(Resource.Id.listView);
listView.Adapter = new MyAdapter(context, itemsSource);
var somethingButton = FindViewById<Button>(Resource.Id.somethingButton);
var elseButton = FindViewById<Button>(Resource.Id.elseButton);
... more code ...
ListView
和其他布局一样只是一个布局,所以它没有什么神奇之处。 MyAdapter
在这个示例中当然是您实现的东西,它获取您的数据并以所需的图像和文本布局呈现它。
有关 ListView
和 Adapter
的更多信息,请 refer to the excellent documentation which Xamarin provides。