选项卡式活动中的showDialog问题

时间:2011-05-16 15:16:49

标签: android dialog tabbed-view

我的主要活动中有一个包含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

1 个答案:

答案 0 :(得分:0)

return super.onCreateDialog(id);更改为return alert;。我假设您的Activity的其他部分正在调用showDialog(int)。如果没有,那么你要么想要这样做,要么从onCreateDialog(id)调用返回的Dialog上的show方法。