2010-11-09 123 views
12

我正在使用Java在Android 2.2上開發。 我把一個editText放在PopupWindow上,它不工作。 它就像一個禁用的編輯文本,單擊編輯文本將不會顯示軟鍵盤。 如何在popupWindow上添加編輯文本?彈出窗口上的EditText

回答

15

我已經解決了這樣的問題:我把popupWindow.setFocusable(true);,現在它的工作。似乎彈出窗口上的編輯文本沒有焦點,因爲彈出窗口沒有焦點。

+0

感謝ü幫助我....感謝一噸.... :) – Taruni 2011-08-10 04:27:10

+0

我試圖爲你建議,但這並沒有幫助。 – Deepak 2012-06-15 13:15:06

+0

但仍然有一個問題,當你長按edittext標記不出現,也不會給剪貼板粘貼 – 2015-03-17 11:54:31

0

EditText是否確實將android:editable屬性設置爲true?如果它是錯誤的,它將在你描述的時候被禁用。

37

試試看:

AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Title"); 
alert.setMessage("Message"); 

// Set an EditText view to get user input 
final EditText input = new EditText(this); 
alert.setView(input); 

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 

    // Do something with value! 
    } 
}); 

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
    // Canceled. 
    } 
}); 

alert.show(); 
+0

彈出窗口幾乎花了我的一天,它花了分鐘解決我的問題,感謝夥計 – 2015-03-17 12:04:35

+0

歡迎我的朋友... – Siten 2015-03-18 06:32:10

0
popWindow.setFocusable(true); 
popWindow.update(); 

它將工作。

+0

不幫幫我。已經在答案中給出。 – Vikas 2016-10-24 12:56:39

0

調用這個代碼從任何聽衆

private void popUpEditText() { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setTitle("Comments"); 

     final EditText input = new EditText(this); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
       LinearLayout.LayoutParams.MATCH_PARENT, 
       LinearLayout.LayoutParams.MATCH_PARENT); 
     input.setLayoutParams(lp); 
     builder.setView(input); 

     // Set up the buttons 
     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 

      // do something here on OK 

      } 
     }); 
     builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel(); 
      } 
     }); 
     builder.show(); 

    }