我想在我的应用中实现搜索视图,当用户点击设备搜索数据上的搜索按钮时。但我不知道如何设置ID默认搜索edittext以及如何获取该ID的ID。我知道通过findviewbyid获取edittext的ID但我不知道该edittext的ID
答案 0 :(得分:1)
将xml文件中的edittext准确添加到要显示的位置,并将可见性设置为“已消失”,并为其设置和ID。 例如:
<EditText
android:id="@+id/myID"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" />
当您希望它出现时(当我按下搜索按钮时),将可见性设置为可见。 例如:edittext..setVisibility(View.VISIBLE);
现在您的edittext可见,用户可以添加输入。使用getText()。toString()获取输入,并在需要时将设置可见性恢复为已消失。
答案 1 :(得分:1)
有两种方法可以做你想做的事: -
1.通过android默认方式使用以下网址: -
android search setup {
{3}}
2.使用自定义视图作为搜索视图在操作栏中(这样您可以从任何活动或片段中搜索): -
在应用程序menu.xml文件中添加一个菜单
<item
android:id="@+id/search"
android:actionLayout="@layout/actionbarsearchlayout"
android:icon="@drawable/ic_action_search"
android:orderInCategory="1"
android:showAsAction="collapseActionView|ifRoom"
android:title="Search"/>
以下是actionbarsearchlayout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<EditText
android:id="@+id/searchTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:hint="@string/search_hint"
android:imeActionLabel="search"
android:imeOptions="actionSearch"
android:singleLine="true"
android:textColorHint="#C0C0C0" />
</RelativeLayout>
在膨胀选项菜单的位置执行以下操作。在OnOptionitemSelected()中
case R.id.search:
View view = item.getActionView();
final EditText search = (EditText) view
.findViewById(R.id.searchTitle);
search.setText("");
search.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
boolean handled = false;
if (event != null) {
if (event.getAction() !=
KeyEvent.ACTION_DOWN) {
return handled;
} else if (actionId ==
EditorInfo.IME_ACTION_SEARCH
|| event.getKeyCode() ==
KeyEvent.KEYCODE_ENTER) {
//do whatever you want to search
//with query
handled = true;
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
search.getWindowToken(), 0);
}
}
return handled;
}
});
答案 2 :(得分:-1)
请试试这个:
public void onClick(View view) {
switch (view.getId()) {
case R.id.your_needed_view:
// your actions
break;}}
然后使用setOnClickListener()