在点击ListView item弹出一个临时的EditView,响应之后却没有弹出软件键盘。下面是我的代码,有什么问题吗?
inputText = (TextView) convertView.findViewById(R.id.fieldValue);
mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
AlertDialog dialog = new AlertDialog.Builder(
MainActivity.this)
.setView(editText)
.setTitle("Input password:")
.setPositiveButton("OK",
new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) {
inputText.setText(editText.getText().toString());
dialog.dismiss();
}
})
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).create();
dialog.show();

editText.requestFocus(); 
Timer timer = new Timer(); 
timer.schedule(new TimerTask() {
@Override
public void run() {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}, 300); 
}
});

解决方案 »

  1.   

    SHOW_FORCED试试,或者之前有没有使用类似
    getWindow().setSoftInputMode(
             WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN |
        WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);这样的代码?
      

  2.   

    我觉得很可能是LZ的模拟器的问题。不知道LZ是用Eclipse自带的模拟器,还是用虚拟机中安装android系统来仿真程序。之前我就是遇到这个问题。以上个人愚见。
      

  3.   

    呵呵,确实啊,我用的就是用在虚拟机中安装android系统来仿真程序的,因为用自带的太慢了