我的主要活动中有一个包含2个标签的tabhost,对于第二个标签,我添加了列表视图意图作为内容。
一切都很好。
现在我在列表视图(第二个标签页)中覆盖onCreateDialog()
方法,当我调用showDialog(MY_DIALOG);
方法onCreateDialog()
被调用时,我在LogCat中收到警告
"WARN/InputManagerService(58): Window already focused, ignoring
focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44ee6948"
任何人都可以帮我看看如何在tabhost的活动中显示对话框。
//修改
protected Dialog onCreateDialog(int id) {
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): +++ START +++");
AlertDialog.Builder builder = new AlertDialog.Builder(this);
switch (id) {
case DIALOG_MY_TYPES: {
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): DIALOG_MY_TYPES");
CharSequence[] items = {"option1", "option2", "option3"};
builder.setTitle("Select").setItems(items,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Log.d(CLASSTAG, "item selected = " + item);
dialog.cancel();
}
}).setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Log.d(Constants.LOGTAG, " "+CLASSTAG+" Cancel button is clicked");
dialog.cancel();
}
});
}
}//switch
alert = builder.create();
Log.v(Constants.LOGTAG, " " +CLASSTAG+ " onCreateDialog(): +++ END +++");
return super.onCreateDialog(id);
}
提前致谢。 -Nehatha
答案 0 :(得分:0)
将return super.onCreateDialog(id);
更改为return alert;
。我假设您的Activity的其他部分正在调用showDialog(int)。如果没有,那么你要么想要这样做,要么从onCreateDialog(id)调用返回的Dialog上的show方法。