请求焦点并在已以编程方式添加到对话框的视图中显示键盘

时间:2014-11-16 11:45:10

标签: android keyboard

我想做什么:我正在创建一个创建AlertDialog的活动,此活动以编程方式和edittext格式引入AlertDialog。我想确保聚焦这样的edittext并显示键盘。

在SO中有很多线程,当使用布局创建视图时,会出现如何执行该操作(如Android TextField : set focus + soft input programmatically)的好解释(等等,你有和id)。

但是,有几条规则,特别是,您无法将视图聚焦到屏幕上。

所以我发生的事情是,我以编程方式创建了edittext,然后我显示了对话框,之后我无法访问我的视图,因为它没有ID(不能使用findviewbyid)。 / p>

那么,如何在AlertDialog中以编程方式创建Edittext请求焦点和显示键盘?

我在这里展示了代码的骰子(为了简单起见,删除了正确的按钮和负面按钮):

 final EditText input = new EditText(getApplicationContext());
     input.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,                     LayoutParams.WRAP_CONTENT));
     input.setGravity(Gravity.LEFT);
     input.setImeOptions(EditorInfo.IME_ACTION_DONE);
     input.setText(current_name);
     input.setTextColor(Color.BLACK);
     input.setBackgroundColor(Color.WHITE);
     input.setFocusableInTouchMode(true);
     input.requestFocus();



    AlertDialog EditDialog =new AlertDialog.Builder(this)
    //set message, title, and icon
    .setTitle(title_id) 
    .setIcon(R.drawable.ic_launcher_blue2)
    .setView(input)

我想做的是当我的EditDialog在屏幕上布局时,我可以请求关注输入并显示键盘。

1 个答案:

答案 0 :(得分:0)

试试这个:

input.setFocusableInTouchMode(true);
input.requestFocus();