点击android搜索框跳入另一个页面,android - ToolBar中的SearchView如何让点击之后跳转到一个新的Activity...
时间: 2024-03-09 11:49:56 浏览: 210
要实现点击Android ToolBar中的SearchView跳转到一个新的Activity,你可以按照以下步骤进行:
1. 在你的Menu文件中定义一个SearchView,例如:search_menu.xml
```xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/ic_search"
android:orderInCategory="100"
app:showAsAction="ifRoom"
app:actionViewClass="android.widget.SearchView" />
</menu>
```
2. 在你的Activity中设置ToolBar,并在onCreateOptionsMenu方法中inflate你的menu文件,例如:
```java
public class MainActivity extends AppCompatActivity {
private Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint("Search...");
return true;
}
// ...
}
```
3. 在你的Activity中为SearchView设置OnQueryTextListener,并在onQueryTextSubmit方法中处理搜索逻辑,例如:
```java
public class MainActivity extends AppCompatActivity {
// ...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setQueryHint("Search...");
// Set OnQueryTextListener
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Intent intent = new Intent(MainActivity.this, SearchResultActivity.class);
intent.putExtra("search_query", query);
startActivity(intent);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
// Do nothing
return false;
}
});
return true;
}
// ...
}
```
4. 创建一个新的Activity来显示搜索结果,例如:
```java
public class SearchResultActivity extends AppCompatActivity {
private TextView mResultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_result);
mResultTextView = findViewById(R.id.result_text_view);
String searchQuery = getIntent().getStringExtra("search_query");
mResultTextView.setText("Search result for: " + searchQuery);
}
}
```
这样,当用户在SearchView中输入搜索关键字并点击搜索按钮时,就会跳转到SearchResultActivity,并将搜索关键字传递给该Activity进行搜索。
阅读全文