如何从函数中显示自定义对话框?

时间:2011-03-17 00:25:18

标签: android dialog

在我的应用中,我有三个调用功能的菜单选项。三个中的一个调用一个函数,该函数应该从文件中读取一些信息,然后在对话框中显示它。我的问题是让对话框工作。我正在使用http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application 作为参考,但他们使用的方法对我不起作用。

星号行之间的部分是我收到错误的地方。类型View中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogInterface.OnClickListener(){})“它继续列出建议的替代方法,它们提供相同的错误但列出setOnClickListener作为建议的替代方案。我在覆盖后得到另一个错误:“新的DialogInterface.OnClickListener(){}类型的onClick(View)方法必须覆盖超类方法”

必须有一种简单的方法来完成这项任务吗?我错过了一些应该很明显的东西吗?

//now stick it in a dialog box
        Context mContext = getApplicationContext();
        Dialog dialog = new Dialog(mContext);
        dialog.setContentView(R.layout.custom_dialog);
        dialog.setTitle("Totals");
        dialog.setCancelable(true);
        TextView text1 = (TextView) dialog.findViewById(R.id.diagtext1);
        TextView text2 = (TextView) dialog.findViewById(R.id.diagtext2);
        TextView text3 = (TextView) dialog.findViewById(R.id.diagtext3);
        Button btn = (Button) dialog.findViewById(R.id.button);
        text1.setText(dist);
        text2.setText(time);
        text3.setText(speed);
        //******************************************************
        btn.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v){
                finish();
            }

        });
        //******************************************************
        dialog.show();

    }

3 个答案:

答案 0 :(得分:2)

您必须import android.view.View.OnClickListener;才能摆脱第一个错误。

@Override方法之前删除onClick()View.OnClickListeneronClick()声明为abstract void,因此没有要覆盖的实现。

如果只有一个活动正在运行,则finish()方法中的onClick()调用将关闭您的活动/应用。您可能希望改为使用dialog.dismiss()dialog.cancel()

答案 1 :(得分:0)

标记/注释按钮'btn'并尝试添加否定按钮。

    dialog.setNegativeButton("Quit", new OnClickListener(){
        @Override
        public void onClick(View v){
            finish();
        }

    });

希望能帮助你。

答案 2 :(得分:0)

看一下这个链接。我想它有你需要的所有解决方案

http://developer.android.com/guide/topics/ui/dialogs.html