2011-04-24 95 views
2

當用戶觸摸Facebook搜索和Google搜索小部件中的EditText時,如何開始新活動?Android:單擊EditText時開始活動

設置setOnClickListener僅在第一次點擊後才起作用。在第一次點擊時,EditText突出顯示,並彈出鍵盤。第二次點擊它會打開新的活動。 我不想要這個,而是想在第一次點擊時打開活動。我該怎麼做?

+2

有什麼理由說,你點擊對話框具有是一個編輯文本?它可能只是一個看起來像編輯文本的圖像,因爲無論如何,沒有人會打字。 – chustar 2011-04-24 14:26:58

+1

Google搜索應用程序小部件沒有「EditText」。你不能在應用程序小部件中使用「EditText」。正如@chustar所建議的,如果不讓用戶編輯文本,使用「EditText」是非常荒謬的。 – CommonsWare 2011-04-24 14:30:13

回答

6

你需要禁用的EditText在觸摸模式下對焦,這將使的第一次敲擊的onclick執行:

<EditText ... 
     android:focusableInTouchMode="false" 
     android:editable="false" 
/> 
+0

非常感謝,它節省了我的時間,我在這方面做了大量的研發工作:) – 2016-01-20 11:56:56

0

設置爲InputType.TYPE_NULL輸入類型的EditText的:

editText.setInputType(InputType.TYPE_NULL); 

,同時接收的用戶交互其中隱藏軟鍵盤。啓動活動:

public void onEditTextClick(View arg0) 
{ 
    Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
    startActivity(intent); 
} 

當然,onEditTextClick方法,已被註冊到EditText對象:)

0

請試試這個

<EditText 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:onClick="search"/> 

public void search(View view) 
{ 
    EditText text = (EditText)view; 

    if(text.length() == 0) 
     return; 
    Intent intent = new Intent(MainActivity.this, SecondActivity.class); 
    startActivity(intent); 
} 

+0

與從代碼中設置'setOnClickListener'相同。它沒有工作。 – 2011-04-24 16:32:06

+0

嗨,我可以確切地知道你想要加載新活動的字符數。我從EditText中刪除了inputType。所以試試吧。如果你知道字符的否,則用no-1替換0。 – 2011-04-25 05:22:45