2014-02-13 39 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);

相关问题