Android SearchView在搜索期间不接受价格

Android SearchView在搜索期间不接受价格,android,searchview,Android,Searchview,我有一个listview,它有Sr,Itemname,数量和价格。我可以增加和减少它的价格。我有下面的“查看”按钮的“搜索视图”。当我点击它时,我可以得到所需的itemname,但只有在找到2、3或4个项目时,它才能得到first itemname的价格。另一个问题是,它只能按第一个字母搜索,如果我写两个字母,那么它就不会得到搜索。我被困在这个从2天。谁能给我正确的代码。我想回答没有使用getter和setter。感谢您的帮助提前。 这是我的密码- MainActivity.java publi

我有一个listview,它有Sr,Itemname,数量和价格。我可以增加和减少它的价格。我有下面的“查看”按钮的“搜索视图”。当我点击它时,我可以得到所需的itemname,但只有在找到2、3或4个项目时,它才能得到first itemname的价格。另一个问题是,它只能按第一个字母搜索,如果我写两个字母,那么它就不会得到搜索。我被困在这个从2天。谁能给我正确的代码。我想回答没有使用getter和setter。感谢您的帮助提前。 这是我的密码-

MainActivity.java

public class MainActivity extends Activity implements SearchView.OnQueryTextListener{

    Button show;
    ListView list_item;
    private ArrayList<Integer> sr;
    private ArrayList<String> item;
    private ArrayList<Integer> quantity;
    private ArrayList<Integer> price;


    private ArrayList<Integer> sr1;
    private ArrayList<String> item1;
    private ArrayList<Integer> price1;
    private ArrayList<Integer> data1;
    SearchView searchView;
    private ArrayList<String> filterlist;


    int tshirtCount = 0;
    int jeansCount = 0;
    int shirtCount = 0;
    int watchCount=0;

    int tshirtPrice = 0;
    int jeansPrice = 0;
    int shirtPrice = 0;
    int watchPrice=0;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        list_item = (ListView) findViewById(R.id.listdetails);
        searchView= (SearchView) findViewById(R.id.bfsearch);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

        show=(Button)findViewById(R.id.btnview);
        sr = new ArrayList<>();
        item = new ArrayList<>();
        quantity = new ArrayList<>();
        price = new ArrayList<>();

        sr1 = new ArrayList<>();
        item1 = new ArrayList<>();
        data1= new ArrayList<>();
        price1= new ArrayList<>();

        filterlist = new ArrayList<>();
        item = filterlist;


        sr.add(1);
        sr.add(2);
        sr.add(3);
        sr.add(4);

        item.add("Tshirt");
        item.add("Jeans");
        item.add("Shirt");
        item.add("Watch");


        quantity.add(0);
        quantity.add(0);
        quantity.add(0);
        quantity.add(0);


        price.add(200);
        price.add(500);
        price.add(400);
        price.add(650);


        Custom c = new Custom(this, sr, item, quantity, price,sr1,item1,data1,price1);
        list_item.setAdapter(c);
        list_item.setTextFilterEnabled(true);
        setUpview();


        show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this,Trial.class);
                Set<Integer> s = new LinkedHashSet<>();
                s.addAll(sr);
                sr.clear();
                sr.addAll(s);

                Set<String> ss = new LinkedHashSet<>();
                ss.addAll(item);
               item.clear();
                item.addAll(ss);

               data1.clear();
                price1.clear();

                for(Integer srn: sr){
                    if(srn==1){
                        data1.add(tshirtCount);
                        price1.add(tshirtPrice);
                    }

                    if(srn==2){
                          data1.add(jeansCount);
                        price1.add(jeansPrice);
                    }

                    if(srn==3){
                        data1.add(shirtCount);
                        price1.add(shirtPrice);
                    }

                    if(srn==4){
                        data1.add(watchCount);
                        price1.add(watchPrice);
                    }
                }


                intent.putExtra("sr",sr);
                intent.putExtra("item",item);
                intent.putExtra("qty",data1);
                intent.putExtra("price",price1);
                startActivity(intent);
            }
        });

    }

    public void setUpview(){
        searchView.setOnQueryTextListener(this);
        searchView.setQueryHint("Search here");

    }

    @Override
    public boolean onQueryTextSubmit(String query) {
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        list_item.setFilterText(newText);
        return true;

    }
}




**Custom.java**



 public class Custom  extends BaseAdapter  implements Filterable {
    MainActivity a;
    public ArrayList<Integer> sr;
    public ArrayList<String> item;
    public ArrayList<Integer> quantity;
    public ArrayList<Integer> price;


    public ArrayList<Integer> sr1;
    public ArrayList<String> item1;
    public ArrayList<Integer> data1;
    public ArrayList<Integer> price1;
    public ArrayList<String> filterlist;



       public Custom(MainActivity a, ArrayList<Integer> sr,    ArrayList<String> item, ArrayList<Integer> quantity, ArrayList<Integer> price, ArrayList<Integer> sr1, ArrayList<String> item1, ArrayList<Integer> data1, ArrayList<Integer> price1) {
            this.a = a;
            this.sr = sr;
            this.item = item;
            this.quantity = quantity;
            this.price = price;
            this.sr1 = sr1;
            this.item1 = item1;
            this.data1 = data1;
            this.price1 = price1;
            }



    @Override
    public int getCount() {
            return item.size();
            }

    @Override
    public Object getItem(int position) {
            return item.get(position);
            }

    @Override
    public long getItemId(int position) {
            return position;
            }

        @Override
        public Filter getFilter() {
            return new Filter() {
                @Override
                protected FilterResults performFiltering(CharSequence constraint) {
                    FilterResults results = new FilterResults();
                    String filterstr = constraint.toString().toUpperCase();
                    ArrayList<String> data = new ArrayList<>();

                    if (filterlist == null)
                        filterlist = item;
                    int count = filterlist.size();
                    String ft = " ";
                    for (int i = 0; i < count; i++) {
                        ft = filterlist.get(i);

                        if (ft.contains(filterstr)) {

                            data.add(ft);

                        }
                    }
                    results.values = data;
                    results.count = data.size();
                    return results;
                }

                @Override
                protected void publishResults(CharSequence constraint, FilterResults results) {
                    item = (ArrayList<String>) results.values;

                    notifyDataSetChanged();
                }


            };
        }

        public class Holder{
        TextView sr1,item1,qty1,price1;
        Button pl,min;

    }


        public int getViewTypeCount() {
            return 2;
        }

        @Override
        public int getItemViewType(int position) {
            return position%2;
        }



        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {

         final Holder holder;



            if (convertView == null) {

                LayoutInflater inflater = a.getLayoutInflater();
                convertView = inflater.inflate(R.layout.customlist, parent, false);
                holder=new Holder();

                holder.sr1 = (TextView) convertView.findViewById(R.id.s_no);
                holder.item1 = (TextView) convertView.findViewById(R.id.i_name);
                holder.qty1 = (TextView) convertView.findViewById(R.id.qty);
                holder.price1 = (TextView) convertView.findViewById(R.id.pr);
                holder.pl = (Button) convertView.findViewById(R.id.pl);
                holder.min = (Button) convertView.findViewById(R.id.min);
                convertView.setTag(holder);
            } else {
                holder = (Holder) convertView.getTag();
            }

            holder.sr1.setText(String.valueOf(sr.get(position)));
            holder.item1.setText(item.get(position));
            holder.qty1.setText(String.valueOf(quantity.get(position)));
            holder.price1.setText(String.valueOf(price.get(position)));



            holder.pl.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    switch (position) {
                        case 0:
                            if (a.tshirtCount >= 0) {
                                a.tshirtCount++;
                                a.tshirtPrice = a.tshirtPrice + 200;
                                sr.get(position);
                                item.get(position);

                            }
                            break;

                        case 1:
                            if (a.jeansCount >= 0) {
                                a.jeansCount++;
                                a.jeansPrice += 500;

                                sr.get(position);
                                item.get(position);

                            }
                            break;
                        case 2:
                            if (a.shirtCount >= 0) {
                                a.shirtCount++;
                                a.shirtPrice += 400;

                                sr.get(position);
                                item.get(position);

                            }
                            break;
                        case 3:
                            if(a.watchCount>=0){
                                a.watchCount++;
                                a.watchPrice +=650;

                                sr.get(position);
                                item.get(position);


                            }
                            break;
                    }
                    if(position==0)
                    {
                       holder.qty1.setText(String.valueOf(a.tshirtCount));
                        holder.price1.setText(String.valueOf(a.tshirtPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.tshirtCount);
                        price1.add(a.tshirtPrice);
                    }
                    else if(position==1)
                    {
                        holder.qty1.setText(String.valueOf(a.jeansCount));
                        holder.price1.setText(String.valueOf(a.jeansPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.jeansCount);
                        price1.add(a.jeansPrice);
                    }
                    else if(position==2)
                    {
                        holder.qty1.setText(String.valueOf(a.shirtCount));
                        holder.price1.setText(String.valueOf(a.shirtPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.shirtCount);
                        price1.add(a.shirtPrice);
                    }
                    else if(position==3)
                    {
                        holder.qty1.setText(String.valueOf(a.watchCount));
                        holder.price1.setText(String.valueOf(a.watchPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.watchCount);
                        price1.add(a.watchPrice);

                    }


                }
            });



            holder.min.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    switch (position) {
                        case 0:
                            if (a.tshirtCount > 0) {
                                a.tshirtCount--;
                                a.tshirtPrice -= 200;

                                sr.get(position);
                                item.get(position);

                            }
                            break;
                        case 1:
                            if (a.jeansCount > 0) {
                                a.jeansCount--;
                                a.jeansPrice -= 500;

                                sr.get(position);
                                item.get(position);

                            }
                            break;

                        case 2:
                            if (a.shirtCount > 0) {
                                a.shirtCount--;
                                a.shirtPrice -= 400;

                                sr.get(position);
                                item.get(position);

                            }
                            break;
                        case 3:
                            if(a.watchCount > 0){
                                a.watchCount--;
                                a.watchPrice-=650;

                                sr.get(position);
                                item.get(position);

                            }
                            break;
                    }

                    if(position==0)
                    {
                        holder.qty1.setText(String.valueOf(a.tshirtCount));
                        holder.price1.setText(String.valueOf(a.tshirtPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.tshirtCount);
                        price1.add(a.tshirtPrice);
                    }
                    else if(position==1)
                    {
                        holder.qty1.setText(String.valueOf(a.jeansCount));
                        holder.price1.setText(String.valueOf(a.jeansPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.jeansCount);
                        price1.add(a.jeansPrice);
                    }
                    else if(position==2)
                    {
                        holder.qty1.setText(String.valueOf(a.shirtCount));
                        holder.price1.setText(String.valueOf(a.shirtPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.shirtCount);
                        price1.add(a.shirtPrice);
                    }
                    else if(position==3)
                    {
                        holder.qty1.setText(String.valueOf(a.watchCount));
                        holder.price1.setText(String.valueOf(a.watchPrice));

                        sr1.add(sr.get(position));
                        item1.add(item.get(position));
                        data1.add(a.watchCount);
                        price1.add(a.watchPrice);

                    }


                }

            });


            return convertView;
        }




    }
公共类MainActivity扩展活动实现SearchView.OnQueryTextListener{
按钮显示;
列表视图列表项;
私人ArrayList sr;
私有数组列表项;
私有数组列表数量;
私人拍卖价格;
私人ArrayList sr1;
私有数组列表项1;
私人ArrayList价格1;
私有ArrayList数据1;
搜索视图搜索视图;
私有数组列表过滤器列表;
int tshirtCount=0;
int-jeansCount=0;
int shirtCount=0;
int watchCount=0;
int tshirtPrice=0;
int-jeansPrice=0;
int shirtPrice=0;
int watchPrice=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
列表项=(ListView)findViewById(R.id.listdetails);
searchView=(searchView)findviewbyd(R.id.bfsearch);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u INPUT\u ADJUST\u PAN);
show=(按钮)findViewById(R.id.btnview);
sr=新的ArrayList();
item=newarraylist();
数量=新的ArrayList();
价格=新的ArrayList();
sr1=新的ArrayList();
item1=新的ArrayList();
data1=新的ArrayList();
price1=新的ArrayList();
filterlist=newarraylist();
项目=过滤器列表;
sr.add(1);
sr.add(2);
sr.add(3);
sr.add(4);
项目。添加(“T恤”);
添加(“牛仔裤”);
项目。添加(“衬衫”);
项目。添加(“手表”);
数量。添加(0);
数量。添加(0);
数量。添加(0);
数量。添加(0);
价格。加(200);
价格。加(500);
价格。加(400);
价格。添加(650);
自定义c=新自定义(此、sr、项目、数量、价格、sr1、项目1、数据1、价格1);
列表项。设置适配器(c);
list_item.setTextFilterEnabled(true);
setUpview();
show.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意图=新的意图(MainActivity.this,Trial.class);
Set s=新的LinkedHashSet();
s、 阿道尔(sr);
高级清除();
高级addAll(s);
Set ss=new LinkedHashSet();
ss.addAll(项目);
item.clear();
项目.添加所有(ss);
data1.clear();
价格1.clear();
用于(整数srn:sr){
如果(srn==1){
数据1.添加(tshirtCount);
价格1.添加(T恤价格);
}
如果(srn==2){
数据1.添加(jeansCount);
价格1.添加(jeansPrice);
}
如果(srn==3){
数据1.添加(衬衫数量);
价格1.添加(衬衫价格);
}
如果(srn==4){
数据1.add(watchCount);
价格1.添加(观察价格);
}
}
意向。额外(“sr”,sr);
意向。额外(“项目”,项目);
意向额外(“数量”,数据1);
意向。额外支付(“价格”,价格1);
星触觉(意向);
}
});
}
公共视图(){
setOnQueryTextListener(这个);
searchView.setQueryHint(“在此处搜索”);
}
@凌驾
公共布尔值onQueryTextSubmit(字符串查询){
返回false;
}
@凌驾
公共布尔onQueryTextChange(字符串newText){
列表项。设置过滤器文本(新文本);
返回true;
}
}
**Custom.java**
公共类自定义扩展BaseAdapter实现可筛选{
主要活动a;
公共检察官;
公共阵列列表项;
公共阵列列表数量;
公开拍卖价格;
公共阵列列表sr1;
公共阵列列表项目1;
公共阵列列表数据1;
公共阵列列表价格1;
公共阵列列表过滤器列表;
公共自定义(主活动a、ArrayList sr、ArrayList项目、ArrayList数量、ArrayList价格、ArrayList sr1、ArrayList项目1、ArrayList数据1、ArrayList价格1){
这个a=a;
this.sr=sr;
this.item=项目;
这个。数量=数量;
这个价格=价格;
这1.sr1=sr1;
这个项目1=项目1;
this.data1=data1;
这个价格1=价格1;
}
@凌驾
public int getCount(){
返回item.size();
}
@凌驾
公共对象getItem(int位置){
返回项目。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共过滤器getFilter(){
返回新筛选器(){
@凌驾
受保护的筛选器结果性能筛选(CharSequence约束){
FilterResults results=新的FilterResults();
String filterstr=constraint.toString().toUpperCase();
ArrayList数据=新的ArrayList();
if(filterlist==null)
过滤器列表=项目;
在里面
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.abc.logic.MainActivity">


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/item_name"
        android:orientation="horizontal"

        android:layout_toRightOf="@+id/sr_no"

        >
        <TextView
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/srno"
            android:layout_below="@+id/breakfast"
            android:text="ITEM NAME"
            android:id="@+id/itemname"
            android:gravity="center"
            android:textStyle="bold"
            android:textColor="#000"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/qtity"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/item_name"

        >
        <TextView
            android:layout_width="40dp"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/itemname"
            android:layout_below="@+id/lunch"
            android:text="QTY"
            android:id="@+id/quantity"
            android:gravity="center"
            android:textStyle="bold"
            android:textColor="#000"
            />

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/count"
        android:layout_toRightOf="@+id/qtity"

        >
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp" />

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rate"
        android:orientation="horizontal"
        android:layout_toRightOf="@+id/count"

        >
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_toRightOf="@+id/quantity"
            android:layout_below="@+id/snacks"
            android:text="PRICE"
            android:id="@+id/price"
            android:gravity="center"
            android:textStyle="bold"
            android:textColor="#000"
            />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/sr_no"
        android:orientation="horizontal"

        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">
        <TextView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_below="@+id/breakfast"
            android:layout_margin="2dp"
            android:layout_marginTop="10dp"
            android:text="SR.NO"
            android:gravity="center"
            android:textStyle="bold"
            android:textColor="#000"
            android:id="@+id/srno"
            />

    </LinearLayout>

    <ListView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:id="@+id/listdetails"
        android:scrollbars="vertical"
        android:layout_below="@+id/item_name"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">


    </ListView>



    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnview"
        android:text="View"
        android:layout_below="@+id/listdetails"
        android:clickable="true">

    </Button>



    <android.support.v7.widget.SearchView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/bfsearch"

        android:layout_marginLeft="3dp"
        android:queryHint="Search"
      android:layout_below="@+id/btnview"
        android:layout_gravity="center"
        />

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/s_no"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:textColor="#000"
        android:textStyle="bold"
        />
    <TextView
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:gravity="center"
        android:textColor="#000"
        android:textStyle="bold"
        android:id="@+id/i_name"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/s_no"
        />

    <Button
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:id="@+id/pl"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/qty"
        android:background="@drawable/plus1"
        />
    <TextView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/qty"
        android:layout_toRightOf="@id/i_name"
        android:gravity="center"
        android:textColor="#000"
        android:textStyle="bold"
        android:layout_marginTop="5dp"
        />

    <Button
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:id="@+id/min"
        android:layout_marginTop="3dp"
        android:layout_below="@id/pl"
        android:layout_toRightOf="@id/qty"
        android:background="@drawable/minus1"
        />

    <TextView
        android:layout_width="60dp"
        android:layout_height="50dp"
        android:id="@+id/pr"
        android:gravity="center"
        android:textColor="#000"
        android:textStyle="bold"
        android:layout_marginLeft="10dp"
        android:layout_alignBottom="@+id/min"
        android:layout_toRightOf="@+id/pl"
        android:layout_toEndOf="@+id/pl" />




</RelativeLayout>