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