Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有没有办法对我的listview进行排序?_Android_Android Listview - Fatal编程技术网

Android 有没有办法对我的listview进行排序?

Android 有没有办法对我的listview进行排序?,android,android-listview,Android,Android Listview,我有一个列表视图。当我单击其中的一项时,会显示另一个ListView。 现在,我希望第二个Listview以RPname为例进行排序。我该怎么做 这是我的活动 using Android.App; using Android.Content; using Android.OS; using Android.Widget; using Itsak.Classes; using AndroidApplication17; namespace Itsak { [Activity(Label = "R

我有一个
列表视图
。当我单击其中的一项时,会显示另一个
ListView
。 现在,我希望第二个
Listview
RPname
为例进行排序。我该怎么做

这是我的活动

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);
    }
}
}
使用Android.App;
使用Android.Content;
使用Android.OS;
使用Android.Widget;
使用Itsak.class;
使用AndroidApplication 17;
名称空间Itsak
{
[活动(Label=“记录点”,NoHistory=false)]
公共类活动记录点:活动
{
私有RecordPointListAdapter\u listAdapter;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
//在此处创建应用程序
SetContentView(Resource.Layout.RecordPointListView);
//创建适配器
_listAdapter=新记录点listAdapter(此);
//查找listview引用
var listView=findviewbyd(Resource.Id.lstViewRecordPoints);
//将适配器连接到ListView
Adapter=\u listAdapter;
//连接单击事件
listView.ItemClick+=ListViewItemClick;
}
private void ListViewItemClick(对象发送者,AdapterView.ItemClickEventArgs e)
{
//从列表适配器获取项
var item=_listAdapter.GetItemAtPosition(e.Position);
//用项目名称敬酒,以表明已单击该项目
Toast.MakeText(this,item.StationName,ToastLength.Short).Show();
//调用ActivityComponents
var组件=新意图(此,类型为(ActivityComponents));
星触觉(组件);
}
}
}
这是我的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>


您可以在适配器初始化中对查询进行排序。使用以下方法对数据库查询进行排序:

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

我认为一般的方法是在适配器中创建一个排序方法,对包含的数据进行排序。在Android上,
ArrayAdapter
确实有一个原生的
Sort
方法,您可以将一个比较器作为参数传递给它

因此,我个人会创建一个类似的排序方法,它使用
Delegate
适配器中的
列表进行排序

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