2011-02-15 47 views
-2

我在製作一個應用程序,並且在我的佈局中添加了一個EditText。在android中的editText

我想要實現的是,當選擇EditText時,應打開一個對話框,其中包含一些常規文本和一個OK按鈕。我可以使用哪種方法來完成此操作?

+0

請提供您的代碼。這將有助於找出錯誤。 – Praveen 2011-02-15 12:38:02

+0

Yeah Ofcourse Reno – Shah 2011-02-15 12:59:31

+2

@Reno請不要傷害別人 – ingsaurabh 2011-02-15 13:03:30

回答

4

你必須嘗試這樣

searchtext.setOnKeyListener(new OnKeyListener() 
    { 
     public boolean onKey(View v, int keyCode, KeyEvent event) 
     { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
      { 
        showDialog(); 
      } 
     } 
    }; 

一些東西,在這裏不用的ShowDialog()代碼

private void showDialog() 
{ 
    final AlertDialog.Builder Main_Dialog = new AlertDialog.Builder(this); 
    final EditText input = new EditText(this); 
    input.setPadding(10, 10, 10, 10); 
    input.setText(ipAddress); 

    Main_Dialog.setView(input); 
    Main_Dialog.setTitle("Enter IP Address:"); 
    Main_Dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
    { 
     public void onClick(DialogInterface dialog, int whichButton) 
     { 
         //Do whatever 
     } 
    }); 
    Main_Dialog.show(); 
} 
1

你的意思是你想在你的EditView獲得焦點時顯示對話框?我認爲覆蓋View.onFocusChanged()將是要走的路。如果要跟蹤EditText的詳細輸入,請實現TextWatcher並使用TextView.addTextChangedListener()將其添加到EditText實例。

2

如果我正確地讀你的困境,你會設置一個OnFocusChangeListener爲的EditText 。像下面的剪輯一樣。

EditText e = new EditText(this); 
    e.setOnFocusChangeListener 
    (
     new OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (v.hasFocus()) { 
        showDialog(COOL_DIALOG); 
       } 
      } 
     } 
    ); 

請注意,這似乎是一個有點奇怪的用戶交互。爲什麼不讓他們使用EditText來創建它?如果你真的想這樣做,我建議使用常規的TextView或Button,並使用單擊處理程序來彈出對話框。這將爲用戶創建更「期望」的交互。