Как я могу передать данные json в представление поиска, которое находится в новом действии, и выполнять автоматический поиск, не нажимая на что-либо пользователя? - PullRequest
1 голос
/ 16 мая 2019

Я настраиваю приложение, которое позволяет пользователям нажимать на школу и получать оценки по этой школе. Я получаю все данные от Jsons. Я хочу, чтобы пользователь щелкнул школу, передал текст «dbn» следующему занятию и поместил этот текст «dbn» в окно поиска.

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

MyViewHolderActivity

 @NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int 
 i) {

    View view ;
    LayoutInflater inflater = LayoutInflater.from(mContext);
    view = inflater.inflate(R.layout.school_row_item, viewGroup, false);
    final MyViewHolder viewHolder = new MyViewHolder(view);

    viewHolder.layout_school.setOnClickListener(new View.OnClickListener() 
 {
        @Override
        public void onClick(View view) {

            Intent i = new Intent(mContext, SATActivity.class);
            i.putExtra("dbn", 
 mDataSchool.get(viewHolder.getAdapterPosition()).getDbn());

            mContext.startActivity(i);

        }
    });

    return viewHolder;

2-е задание

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {

    String dbn = getIntent().getExtras().getString("dbn");

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    MenuItem searchItem = menu.findItem(R.id.search);
    searchItem.expandActionView();

    SearchView searchView = (SearchView) searchItem.getActionView();
    searchView.setQuery(dbn, true);

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

        @Override
        public boolean onQueryTextChange(String s) {
            s = getIntent().getExtras().getString("dbn");
            myadapter.getFilter().filter(s);
            return true;
        }
    });

    return true;
}

Я ожидаю, что пользователь щелкнет по элементу RecyclerView из 1-го действия и отправит информацию "dbn" во 2-й поисковый запрос "Упражнение", чтобы он выполнял поиск и обновлял список без вмешательства пользователя.

update обновленный код после перехода по предложенной ссылке. данные отправляются в searchview, но они не ищут и не обновляют список, пока я не нажму назад дважды.

...