2013-08-20 71 views
0

我想在我的應用中實現搜索視圖,當用戶單擊設備搜索數據上的搜索按鈕時。但我不知道如何設置ID爲默認搜索的EditText,以及如何能得到that.I的ID知道通過findviewbyid得到的EditText的ID,但我不知道的EditText的ID可搜索應用中的edittext的ID

回答

1

添加您的EditText在XML文件中的確切位置,你想讓它appeare和顯示設置更改爲「水漲船高」,還可以設置和id它。 例如:

<EditText 
     android:id="@+id/myID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="gone" /> 

當你希望它出現(當你按下搜索按鈕我猜)設置能見度可見。例如:edittext..setVisibility(View.VISIBLE);

現在你的編輯文本是可見的,用戶可以添加一個輸入。使用getText()。toString()獲取輸入,並且當您希望它的設置可見性消失時。

+0

時,我不會動態添加。當您在設計中按下搜索按鈕時,出現一個edittext和按鈕,我想要該編輯文本的ID, –

+0

將其設置在xml android:id =「@ + id/whatever」 –

+0

或者你的問題很火,鏈接到id? –

-1

試試這個請:

public void onClick(View view) { 
    switch (view.getId()) { 
     case R.id.your_needed_view: 
        // your actions 
        break;}} 

然後用setOnClickListener()

+0

我需要your_needed_view你在你的代碼編寫 –

+0

指定XML文件'機器人:ID = 「@ + ID/your_needed_view」' –

+0

我不以我的程序,可以看到添加的EditText ,我使用默認的編輯文本,當你在你的Android設備中點擊搜索按鈕,並且想要我的ID爲 –

1

有兩種方法可以做到你想要什麼: -
1. Android的默認方式使用以下網址: -
android search setup
android search dialogs
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; 
      } 
     });