Android 筛选的Listview未更新

Android 筛选的Listview未更新,android,listview,Android,Listview,我面临着筛选列表视图未更新的问题 在我的应用程序中,有一个自定义列表视图,其中有两个文本视图和一个图像视图作为行元素 过滤器工作正常,但我的自定义列表视图未更新;结果显示列表的第一行 这是我的密码 abc.java文件 公共类abc扩展ListActivity { private ArrayList m_orders=null; 专用OrderAdapter m_adapter; List Title_List=new ArrayList(); List Author_List=new Arra

我面临着筛选列表视图未更新的问题

在我的应用程序中,有一个自定义列表视图,其中有两个文本视图和一个图像视图作为行元素

过滤器工作正常,但我的自定义列表视图未更新;结果显示列表的第一行

这是我的密码

abc.java文件
公共类abc扩展ListActivity
{
private ArrayList m_orders=null;
专用OrderAdapter m_adapter;
List Title_List=new ArrayList();
List Author_List=new ArrayList();
专用ArrayAdapter适配器=null;
私人停车场;
专用矢量数据;
private EditText filterText=null;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@凌驾
public void onStart(){
super.onStart();
m_orders=new ArrayList();
filterText=(EditText)findViewById(R.id.search_框);
filterText.addTextChangedListener(filterTextWatcher);
setListAdapter(m_adapter=neworderadapter(this,R.layout.list_行,m_orders));
m_adapter.notifyDataSetChanged();
getListView().setTextFilterEnabled(true);
}
私有TextWatcher filterTextWatcher=新TextWatcher(){
@凌驾
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后)
{
}
@凌驾
public void onTextChanged(字符序列,int start,int before,
整数计数){
m_adapter.getFilter().filter(s,new filter.FilterListener(){
已完成的公共无效过滤器(整数计数){
Log.d(null,“过滤器完成!计数:”+count);
m_adapter.notifyDataSetChanged();
}
}); 
}
@凌驾
公共无效后文本已更改(可编辑){
//TODO自动生成的方法存根
}
};
私有类OrderAdapter扩展了ArrayAdapter{
私有ArrayList项;
public OrderAdapter(上下文上下文、int textViewResourceId、ArrayList项){
super(上下文、textViewResourceId、项);
这个项目=项目;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
如果(v==null){
LayoutInflater vi=(LayoutInflater)getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
v=vi.充气(R.布局.列表,空);
}
字符串顺序=m_orders.get(位置);
String description=Item_List.get(位置);
如果(订单!=null)
{
TextView tt=(TextView)v.findViewById(R.id.toptext);
TextView bt=(TextView)v.findViewById(R.id.bottomtext);
如果(tt!=null){
tt.setText(“标题:+订单”);
}
如果(bt!=null){
bt.setText(“des:+说明);
}
}
返回v;
}
}
@凌驾
public void onListItemClick(ListView父视图、最终视图v、整数位置、长id)
{
}
}
list_row.xml文件


我认为过滤器可以工作,但只有结果不会在列表视图中更新。

我想我也有同样的问题。我花了大约5个小时才找到答案。 错误可能在getView()中

使用ArrayAdapter方法的getItem()方法,而不是

String order = m_orders.get(position);
String description = Item_List.get(position);
问题是过滤后的数据包含在ArrayAdapter.mObjects中。如果您使用自己的数据变量,则不会过滤任何内容

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="40px"
        android:layout_height="40px"
        android:layout_marginRight="6dip"
       />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="50px">
        <TextView
            android:paddingTop="1pt"
            android:id="@+id/toptext"
            android:layout_width="200px"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:textColor="#ffffff"
            android:textSize="18sp"
            android:paddingBottom="1pt"
            android:ellipsize="marquee" 

            android:marqueeRepeatLimit="marquee_forever" 
            android:lines="1" 
            android:scrollHorizontally="true"
        />
        <TextView
            android:paddingTop="1pt"
            android:layout_width="200px"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:id="@+id/bottomtext"
            android:paddingBottom="2pt"
            android:ellipsize="marquee" 

            android:marqueeRepeatLimit="marquee_forever" 
            android:lines="1" 
            android:scrollHorizontally="true"
        />
    </LinearLayout>
</LinearLayout>
String order = m_orders.get(position);
String description = Item_List.get(position);