可搜索应用中的edittext的ID

时间:2013-08-20 07:27:52

标签: android android-edittext

我想在我的应用中实现搜索视图,当用户点击设备搜索数据上的搜索按钮时。但我不知道如何设置ID默认搜索edittext以及如何获取该ID的ID。我知道通过findviewbyid获取edittext的ID但我不知道该edittext的ID

3 个答案:

答案 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()