2014-02-13 41 views
1

我正在使用片段。我點擊了按鈕後顯示一個彈出窗口。在彈出窗口中,我已經通過XML添加了編輯文本。在運行時,我無法輸入該編輯文本,但我的光標可見並閃爍。爲editText無法在編輯文本中鍵入文本,但光標可見

<EditText android:id="@+id/edtTitle" 
     android:layout_width="500dp" 
     android:layout_height="50dp" 
     android:background="#FFFFFF" 
     android:layout_marginTop="20dp" 
     android:gravity="center_vertical" 
     android:hint="Event title" 
     android:paddingLeft="10dp" 
     android:textColor="#000000" 
     android:textSize="20sp" 
     android:textStyle="normal"/> 

我的活動代碼

XML代碼:

public void showPopup() { 
    LayoutInflater li = LayoutInflater.from(getActivity()); 
    View v = li.inflate(R.layout.popup, null); 
    PopupWindow window = new PopupWindow(v, width, height); 
    edtTitle = (EditText) v.findViewById(R.id.edtTitle); 
} 

任何幫助表示讚賞!

+6

你可以把該彈出的XML代碼? – OAEI

+1

把你的java代碼 –

+0

發佈你的代碼,所以我們可以解決你的問題。 –

回答

0

更新XML代碼:

<EditText android:id="@+id/edtTitle" 
    android:layout_width="500dp" 
    android:layout_height="50dp" 
    android:background="#FFFFFF" 
    android:layout_marginTop="20dp" 
    android:gravity="center_vertical" 
    android:hint="Event title" 
    android:paddingLeft="10dp" 
    android:clickable="true" 
    android:focusable="true" 
    android:focusableOnTouch="true" 
    android:textColor="#000000" 
    android:textSize="20sp" 
    android:textStyle="normal"/> 

,還可以編輯代碼,並再次檢查:

public void showPopup() { 
LayoutInflater li = LayoutInflater.from(getActivity()); 
View v = li.inflate(R.layout.popup, null); 
PopupWindow window = new PopupWindow(v, width, height); 
Veiw popupView = window.getContentView(); 
edtTitle = (EditText) popupView.findViewById(R.id.edtTitle); 
} 
+0

謝謝Shah!我試過你的代碼。但沒有用......我正在處理碎片。所以,它不工作。如果我在Activity中做了同樣的事情,它工作正常。 – Ferose

+0

我編輯了我的答案。請檢查更新的答案。 – OAEI

0

檢查,如果你在你彈出一個setOnKeyListener,並確保你回來,如果假你不需要這個事件,例如:

OnKeyListener listener = new OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       //Do something 
       return true; 
      } 
      return false; 
     } 
    }; 
0

這是因爲PopupWindow沒有被聚焦,p租約將構造函數更改爲focusable = true

PopupWindow pop = new PopupWindow(popupViewWindow,ViewGroup.LayoutParams.MatchParent,ViewGroup.LayoutParams.WrapContent,true);

相關問題