Фильтр поиска в пользовательском представлении списка - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь добавить фильтр поиска в пользовательском представлении списка.Несколько раз я пытался, но все еще есть проблема.Здесь поисковый фильтр визуально показывает панель действий, но не работает.Любой может это исправить, пожалуйста .....

Mainactivity.java

public class Sulphur extends AppCompatActivity {

private ListView listView;
private  String[] productName;
private  String[] genericName;
private   String[] companyName;
private   String[] apNumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_sulphur);
    listView= findViewById(R.id.lv_Sulphur);
    this.setTitle("Sulphur");
    productName =getResources().getStringArray(R.array.Sulphur);
    genericName =getResources().getStringArray(R.array.Sulphur_Generic);
    companyName= getResources().getStringArray(R.array.Sulphur_Company);
    apNumber=getResources().getStringArray(R.array.Sulphur_AP);

    CustomAdapter adapter= new CustomAdapter(this, productName,genericName,companyName,apNumber);
    listView.setAdapter(adapter);
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.layout_menu, menu);
    MenuItem menuItem = menu.findItem(R.id.searchMenuID);

    SearchView searchView = (SearchView) menuItem.getActionView();


    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String s) {
            return true;
        }

        @Override
        public boolean onQueryTextChange(String s) {

            String text= s;

            CustomAdapter.getFilter().filter(s);

            return true;
        }
    });


    return super.onCreateOptionsMenu(menu);
}
}

Настраиваемый адаптер

public class CustomAdapter extends BaseAdapter {

String[] productName;
String[] genericName;
String[] companyName;
String[] apNumber;
Context context;
private LayoutInflater inflater;


CustomAdapter(Context context, String[]productName, String[]genericName,String[] companyName,String[] apNumber ){

    this.context=context;
    this.productName=productName;
    this.genericName=genericName;
    this.companyName=companyName;
    this.apNumber=apNumber;
}


@Override
public int getCount() {
    return productName.length;
}

@Override
public Object getItem(int i) {
    return null;
}

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

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

    if(view==null){
        inflater= (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       view= inflater.inflate(R.layout.sample_view,viewGroup,false);
    }

    TextView textView=view.findViewById(R.id.Product_textviewID);
    TextView textView2=view.findViewById(R.id.Generic_texviewtID);
    TextView textView3=view.findViewById(R.id.Company_texviewtID);
    TextView textView4=view.findViewById(R.id.APNumber_texviewtID);

    textView.setText(productName[i]);
    textView3.setText(companyName[i]);
    textView4.setText(apNumber[i]);
    textView2.setText(genericName[i]);

    return view;
}
public static android.widget.Filter getFilter(){
    return new android.widget.Filter(){

        @Override
        protected FilterResults performFiltering(CharSequence charSequence) {
            return null;
        }

        @Override
        protected void publishResults(CharSequence charSequence, FilterResults filterResults) {

        }
    };
}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...