Java 如何将json数据传递到新活动和自动搜索中的searchview,而无需用户单击任何内容?

Java 如何将json数据传递到新活动和自动搜索中的searchview,而无需用户单击任何内容?,java,json,searchview,Java,Json,Searchview,我正在建立一个应用程序,让用户点击一所学校,并从该学校获得sat分数。我从JSON那里得到了所有的数据。我希望用户点击学校,将“dbn”文本传递给下一个活动,并将“dbn”文本放入searchview 在我的第二个活动中,我的searchview是,数据被放入searchview,但列表不会更新,直到我单击后退两次退出searchview。我只希望SearchView输入文本并进行搜索,而用户无需触摸任何东西 MyViewHolderActivity @NonNull @Override pu

我正在建立一个应用程序,让用户点击一所学校,并从该学校获得sat分数。我从JSON那里得到了所有的数据。我希望用户点击学校,将“dbn”文本传递给下一个活动,并将“dbn”文本放入searchview

在我的第二个活动中,我的searchview是,数据被放入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;
  @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;
}
第二项活动

 @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;
  @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项目,并将“dbn”信息发送到第二个活动搜索视图,让它搜索并更新列表,而不让用户触摸任何东西


更新按照建议的链接更新代码。数据被发送到searchview,但它不会搜索和更新列表,除非我按后退两次。

我遵循了他们在帖子中建议的所有不同方法,并且部分有效。它会将数据发送到SearchView,但不会更新列表。“…但不会更新列表。”您需要显示您尝试了什么,然后我们才能提供帮助。@Code peedient Cool是的,我最近更新了帖子。看看变化。谢谢你的帮助。我遵循了他们在帖子中建议的所有不同方法,并且部分有效。它会将数据发送到SearchView,但不会更新列表。“…但不会更新列表。”您需要显示您尝试了什么,然后我们才能提供帮助。@Code peedient Cool是的,我最近更新了帖子。看看变化。谢谢你的帮助。