2013-02-21 80 views
0

我需要在我的設備的軟鍵盤上執行搜索按鈕。 mycode的:搜索按鈕不起作用

XML文件:

<EditText 
    android:id="@+id/searchText" 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    android:textSize="15sp" 
    android:hint="@string/search" 
    android:drawableLeft="@drawable/ic_btn_search" 
    android:singleLine="true" 
    android:drawablePadding="5dp" 
    android:imeOptions="actionSearch" 
    android:imeActionLabel="Search" android:layout_weight="1"/> 

的Java文件:

searchFild = (EditText) findViewById(R.id.searchEditTxt); 
    searchFild.setImeOptions(EditorInfo.IME_ACTION_SEARCH); 
    searchFild.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView textView, int arg, KeyEvent keyEvent) { 
      if(arg == EditorInfo.IME_ACTION_SEARCH) { 
       String searchString=searchFild.getText().toString(); 
       searchBibles(searchString); 
       return true; 
      } 
      return false; 
     } 
    }); 

搜索按鈕預設鍵盤,但點擊之後沒什麼happends。 arg是零。 它在android 2.2中的工作,但不工作在Android 4.0

+0

在android 2中的工作。在第四次不起作用 – waldemar 2013-02-21 13:23:03

回答

1

在xml中你需要配置inputTypetext。在Java代碼中,您可以刪除searchFild.setImeOptions(EditorInfo.IME_ACTION_SEARCH);,至少,這使得它在Android 4.1.2(這是我測試過的唯一版本)

完整的代碼我使用看起來像這樣的工作:

<EditText 
     android:id="@+id/txtSearch" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:drawableLeft="@drawable/action_search" 
     android:drawablePadding="5dp" 
     android:hint="@string/input_keywords_for_search" 
     android:imeActionLabel="Search" 
     android:inputType="text" 
     android:imeOptions="actionSearch" /> 

和Java代碼

final EditText txtSearch = (EditText) findViewById(R.id.txtSearch); 
txtSearch.setOnEditorActionListener(new OnEditorActionListener() { 

    @Override 
    public boolean onEditorAction(TextView v, int actionId, 
     KeyEvent event) { 
     if (actionId == EditorInfo.IME_ACTION_SEARCH) { 
     String searchString = txtSearch.getText().toString(); 
     search(searchString); 
     return true; 
    } 
    return false; 
    } 
}); 

我希望這有助於!