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
对适配器中的列表进行排序
如果要从数据库获取数据,请使用数据库中内置的排序方法