是否可以在Mono Android中使用没有ListActivity的ListView?

Igo*_*nko 7 mono android android-widget xamarin.android

我正在尝试使用ListView在其他小部件中实现活动.所以,如果我理解正确,我就不能使用ListActivity(因为它只显示了一个对我来说没问题的大型ListView).

我发现了许多不同的例子,在这样做,在这样这个很好的例子的 SO .
我试图以同样的方式做,但它无法正常工作.我很好奇这个功能是否存在于单声道android中?

我发现只有一个在单声道android中使用ListView的例子就是 这个 ,这个例子描述了仅使用ListActivity.

那么,我的布局:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
android:id="@+id/widget36"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
    <ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    </ListView>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

我的OnCreate:

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.CreateUser);

        JavaList<string> somadata = new JavaList<string> { "111", "222", "333" };

        ListView view = FindViewById<ListView>(Resource.Id.list);
        view.Adapter = new ArrayAdapter<string>(this, Resource.Layout.CreateUser, somadata);
        view.TextFilterEnabled = true;          
    }
Run Code Online (Sandbox Code Playgroud)

Igo*_*nko 9

我刚刚找到解决方案.我在这行中有错误:

view.Adapter = new ArrayAdapter<string>(this, Resource.Layout.CreateUser, somadata);
Run Code Online (Sandbox Code Playgroud)

这个主题对我很有帮助.

以下是您可以使用的布局列表.

预定义布局的来源在这里.

因此,如何在Mono Android中修复错误并使ListView在没有ListActivity的情况下工作有两种选择.
第一:
只需复制/粘贴标准资源的布局simple_list_item_1:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:paddingLeft="6dip"
    android:minHeight="?android:attr/listPreferredItemHeight"
/>
Run Code Online (Sandbox Code Playgroud)

第二(我确定这是一种最好的方式):
只需使用标准资源.在Mono Android中,它命名Android.Resource.Layout.SimpleListItem1
为On我更新版的OnCreate,它完美无缺:

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        SetContentView(Resource.Layout.CreateUser);

        JavaList<string> somadata = new JavaList<string> { "111", "222", "333" };

        ListView view = FindViewById<ListView>(Resource.Id.list);
        view.Adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, somadata);
    }
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

5145 次

最近记录:

12 年,8 月 前