如何在 SearchView 中设置文本?
How to set Text in SearchView?
如何将数据传递给searchview?我正在传递数据,但我不知道如何在我的搜索视图中获取值,请帮助我
public static final String EXTRA_ID = "Id";
@BindView(R.id.svDetail)
android.support.v7.widget.SearchView svDetail;
@BindView(R.id.rvDetail)
RecyclerView rvDetail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_member);
ButterKnife.bind(this);
String id = getIntent().getStringExtra(EXTRA_ID);
svDetail.setQuery(id,false);
当我使用 TextView 时 // tvdetail.setText(id);
它在工作,为什么不为 SearchView 工作?请帮忙
首先您需要检查您是否正在获取 Intent
中的数据,如下所示:-
/// GETTING INTENT DATA
Intent intent = getIntent();
if (intent.hasExtra("EXTRA_ID")) {
String id = getIntent().getStringExtra("EXTRA_ID");
YOUR_SEARCHVIEW.setActivated(true);
YOUR_SEARCHVIEW.onActionViewExpanded();
YOUR_SEARCHVIEW.setIconified(false);
YOUR_SEARCHVIEW.clearFocus();
///AT THE END YOU NEED TO SET THE TEXT
YOUR_SEARCHVIEW.setQuery(id,false);
}
else {
Log.e("NO DATA","NO DATA FOUND");
}
另一个问题可能是您正在传递数据 Integer
值并获得 String
和反之亦然
我不知道如何将数据传递给搜索视图
但正如建议的那样:您可以使用 editText 并在其旁边放置一个搜索图标
whit editText 您可以使用此代码:
EditText searchBar = findViewById(R.id.searchBar);
searchBar.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Toast.makeText(MainActivity.this, "editText content changed", Toast.LENGTH_SHORT).show();
}
});
传递值只需写 searchBar.setText(id);
;此行运行 TextChangedListener,现在您的搜索栏也有一个文本更改侦听器
如何将数据传递给searchview?我正在传递数据,但我不知道如何在我的搜索视图中获取值,请帮助我
public static final String EXTRA_ID = "Id";
@BindView(R.id.svDetail)
android.support.v7.widget.SearchView svDetail;
@BindView(R.id.rvDetail)
RecyclerView rvDetail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_member);
ButterKnife.bind(this);
String id = getIntent().getStringExtra(EXTRA_ID);
svDetail.setQuery(id,false);
当我使用 TextView 时 // tvdetail.setText(id); 它在工作,为什么不为 SearchView 工作?请帮忙
首先您需要检查您是否正在获取 Intent
中的数据,如下所示:-
/// GETTING INTENT DATA
Intent intent = getIntent();
if (intent.hasExtra("EXTRA_ID")) {
String id = getIntent().getStringExtra("EXTRA_ID");
YOUR_SEARCHVIEW.setActivated(true);
YOUR_SEARCHVIEW.onActionViewExpanded();
YOUR_SEARCHVIEW.setIconified(false);
YOUR_SEARCHVIEW.clearFocus();
///AT THE END YOU NEED TO SET THE TEXT
YOUR_SEARCHVIEW.setQuery(id,false);
}
else {
Log.e("NO DATA","NO DATA FOUND");
}
另一个问题可能是您正在传递数据 Integer
值并获得 String
和反之亦然
我不知道如何将数据传递给搜索视图
但正如建议的那样:您可以使用 editText 并在其旁边放置一个搜索图标
whit editText 您可以使用此代码:
EditText searchBar = findViewById(R.id.searchBar);
searchBar.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Toast.makeText(MainActivity.this, "editText content changed", Toast.LENGTH_SHORT).show();
}
});
传递值只需写 searchBar.setText(id);
;此行运行 TextChangedListener,现在您的搜索栏也有一个文本更改侦听器