简体   繁体   English

如何在Android的Edittext弹出窗口上打开键盘

[英]How to open keyboard on Edittext popup Android

I have a problem popup. 我弹出一个问题。 I can not type on a popup on EditText. 我无法在EditText的弹出窗口上键入。 When I press the TextView, I want to open the popup and type in EditText when pressed the Save button to have the TextView content Edittext 当我按下TextView时,我想打开弹出窗口并在按下Save按钮以使TextView内容为Edittext时键入EditText

Class popup open!!! 类弹出窗口打开!!!

private TextView name;
private PopupWindow popupWindow=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        name=(TextView)findViewById(R.id.name);
        name.setOnClickListener(new OnClickListener()
        { @Override
            public void onClick(View arg0) {
                if(popupWindow!=null)
                {
                    popupWindow.dismiss();
                    popupWindow=null;
                }
                openpopup();
            }
        });
    }

Function open popup 功能打开弹出窗口

private void openpopup()
{
    LayoutInflater layoutInflater= getLayoutInflater();
    View popupView = layoutInflater.inflate(R.layout.edittext, null);
    popupWindow = new PopupWindow(popupView,LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
    Button btnsave = (Button)popupView.findViewById(R.id.save);
    Button btncancel =(Button)popupView.findViewById(R.id.cancel);
    final EditText text=(EditText)popupView.findViewById(R.id.name);
    btnsave.setOnClickListener(new Button.OnClickListener(){
    @Override
      public void onClick(View v) {
         popupWindow.dismiss();
         popupWindow=null;
         if(text.getText()==null)
         {
         name.setText(text.getText().toString());
         }
      }}); 
    btncancel.setOnClickListener(new Button.OnClickListener(){
    @Override
      public void onClick(View v) {
         popupWindow.dismiss();
         popupWindow=null;
      }}); 
    popupWindow.showAsDropDown(name, 0, 0);
}

activity_main.xml activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerInParent="true"
        android:text="@string/name" />
</RelativeLayout>

edittext.xml edittext.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="text" >
        <requestFocus />
    </EditText>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <Button
            android:id="@+id/save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@+string/save"/>
         <Button
            android:id="@+id/cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@+string/cancel"/>
    </LinearLayout>
</LinearLayout>

How do I open keyboard and you can type in popup Edittext? 如何打开键盘,然后可以输入弹出的Edittext?

You can do this by requesting for the focus to EditText 您可以通过将焦点放在EditText上来完成此操作

If you request focus to editText the keyboard will automatically appears 如果您要求将焦点放在editText上,键盘将自动出现

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM