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