有没有办法对listview进行排序?

时间:2013-01-14 09:40:38

标签: android android-listview

我有ListView。当我点击它的一个项目时,我会显示另一个ListView。 现在我希望第二个ListviewRPname排序。我怎么能这样做?

这是我的活动

using Android.App;
using Android.Content;
using Android.OS;
using Android.Widget;
using Itsak.Classes;
using AndroidApplication17;

namespace Itsak
{
[Activity(Label = "Record Points", NoHistory = false)]
public class ActivityRecordPoints : Activity
{
    private RecordPointListAdapter _listAdapter;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Create your application here
        SetContentView(Resource.Layout.RecordPointListView);

        //Create adapter
        _listAdapter = new RecordPointListAdapter(this);

        //Find the listview reference
        var listView = FindViewById<ListView>(Resource.Id.lstViewRecordPoints);

        //Hook up adapter to ListView
        listView.Adapter = _listAdapter;
        //Wire up the click event
        listView.ItemClick += ListViewItemClick;
    }

    private void ListViewItemClick(object sender, AdapterView.ItemClickEventArgs e)
    {
        //Get item from the list adapter
        var item = _listAdapter.GetItemAtPosition(e.Position);
        //Make a toast with the item name just to show it was clicked
        Toast.MakeText(this, item.StationName, ToastLength.Short).Show();

        // Invoke ActivityComponents
        var components = new Intent(this, typeof(ActivityComponents));

        StartActivity(components);
    }
}
}

这是我的Xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RecordPointLinearLayout"
android:layout_width="fill_parent"
android:layout_height="80px">
<ImageView
android:id="@+id/imageItemRP"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
<LinearLayout
android:id="@+id/linearTextRP"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_marginLeft="10px"
android:layout_marginTop="10px">
    <TextView
    android:id="@+id/textTopRPName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />
    <TextView
    android:id="@+id/textBottomRPCode"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

您可以在适配器中对查询进行排序。使用以下命令对数据库查询进行排序:

Cursor c = db.query(DATABASE_TABLE, cols,null, null, null, null,RPName);

答案 1 :(得分:0)

我认为通常的方法是在适配器中创建一个排序方法,对所包含的数据进行排序。在Android上,ArrayAdapter确实有一个本地Sort方法,您可以将比较器作为参数传递给。{/ p>

所以我个人会创建一个类似的排序方法,需要Comparison DelegateList中的Adapter进行排序。

如果要从数据库中提取数据,请使用数据库中的内置排序方法。