неправильная позиция поиска - PullRequest
0 голосов
/ 19 октября 2018

когда я ищу первый элемент, все в порядке.при поиске второго или третьего элемента и т. д. отображается второй или третий элемент, но при нажатии;изменение неправильной позиции андроида переработчика.это всегда показывает первый элемент данных, когда я нажимаю.я ссылаюсь с на этот сайт .

CompanyListActivity,

@Override
public boolean onQueryTextChange(String newText) {
    final List<Company> filteredModelList = filter(companyList, newText);
    if (filteredModelList.size() > 0) {
        adapter.setFilter(filteredModelList);
        return true;
    } else {
        //Toast.makeText(MainActivity.this, "Not Found", Toast.LENGTH_SHORT).show();
        return false;
    }
}

private List<Company> filter(List<Company> companyList, String newText) {
    newText = newText.toLowerCase();
    final List<Company> filteredModelList = new ArrayList<>();
    for (Company model : companyList) {
        final String text = model.getCompanyName().toLowerCase();
        if (text.contains(newText)) {
            filteredModelList.add(model);
        }
    }
    companyList = db.getAllCompanies();
    adapter = new CompanyListRVAdapter(CompanyListActivity.this, filteredModelList);
    recycler_view.setLayoutManager(new LinearLayoutManager(CompanyListActivity.this));
    recycler_view.setAdapter(adapter);
    adapter.notifyDataSetChanged();
    return filteredModelList;
}

CompanyListRVAdapter,

private Context context;
private List<Company> companyList;
private List<Company> mCompanyList;

public CompanyListRVAdapter(Context context, List<Company> companyList) {
    this.context = context;
    this.companyList = companyList;
}

private class MyMenuItemClickListener implements PopupMenu.OnMenuItemClickListener {
    int position;

    public MyMenuItemClickListener(int pos) {
        this.position = pos;
    }

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_detail:
                Bundle bundle = new Bundle();
                bundle.putInt("position", position);
                Intent intent = new Intent(context, CompanyDetailActivity.class);
                intent.putExtras(bundle);
                context.startActivity(intent);
                return true;
            default:
        }
        return false;
    }
}

public void setFilter(List<Company> companies) {
    mCompanyList = new ArrayList<>();
    mCompanyList.addAll(companies);
    notifyDataSetChanged();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...