大家好我正在开发一个Android应用程序。我正在使用alertDialog类。我有自定义列表视图和2个按钮。在我的自定义列表视图中,我有一个EditText字段。但是当对话框弹出并触摸时EditText在光标开始在文本框中闪烁时,softKeyboard没有出现。是不是因为alertdialog? 谢谢你的时间。
public class ProgressReport extends ListActivity {
private ResultSet receivedData;
private StudentProgressAdapter ca;
private Button btnRtn;
ArrayList<String> content =new ArrayList<String>();
ArrayList<String> subContent = new ArrayList<String>();
AlertDialog dialog ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Holo_Light);
setContentView(R.layout.examslayout);
for(int i =0;i<20;i++)
content.add("ELEMENTARY: "+i);
for(int i =0;i<20;i++)
subContent.add("ΒΑΣΙΚΗ ΚΑΤΗΓΟΡΙΑ");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Student Stats").setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
//MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});;
ListView modeList = new ListView(this);
modeList.setAdapter(new ProgressReportAdapter2(this, new int[]{R.layout.arrowlistview}, new int[]{R.id.textView1,R.id.textView2},content,20,subContent));
builder.setView(modeList);
dialog = builder.create();
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
Intent intent = getIntent();
receivedData = (ResultSet) intent.getSerializableExtra("SentData");
ArrayList<String> content = new ArrayList<String>(MainPagerActivity.receivedData.getStudents().length);
for (int i=0; i <receivedData.getStudents().length; i++)
content.add(receivedData.getStudents()[i].getProperty(3).toString()+" "+receivedData.getStudents()[i].getProperty(2).toString());
ca= new StudentProgressAdapter(this, new int[]{R.layout.stdprgrlistview}, new int[]{R.id.textView1}, content,content.size());
setListAdapter(ca);
btnRtn= (Button) findViewById(R.id.btn);
btnRtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
dialog.show();
}
答案 0 :(得分:1)
试试这个:
AlertDialog alertToShow = alert.create();
alertToShow.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
alertToShow.show();
更新:
您可以像这样修改您的代码
dialog = builder.create();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
dialog.show();
希望这有帮助。
答案 1 :(得分:0)
创建对话框后添加:
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);`