方法setPositiveButton

时间:2014-08-25 11:28:47

标签: android android-alertdialog

大家好,我刚刚开始使用android,我正在进行第一个项目。 我不是开发人员基础,所以如果我的语言不合适,请原谅。那一周我已经停留在这个警报对话框功能上了。我请你帮帮我谢谢!

public class Myclass extends Activity implements DialogInterface.OnClickListener{

    private TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.lyt);
    tv=(TextView)findViewById(R.id.textView1);

    tv.setOnClickListener(new TextView.OnClickListener() {
    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    AlertDialog ad = new AlertDialog.Builder(tv.getContext())
    .setMessage("Blah blah blah.\n Fine pring.\n Do you accept all our terms and conditions?")
    .setIcon(R.drawable.ic_launcher)
    .setTitle("Terms of Service")
    .setPositiveButton("Yes", this)
    .setNegativeButton("No", this)
    .setCancelable(false)
    .create();
    ad.show();
        }
});
    }

        @Override
        public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        switch(which){
        case DialogInterface.BUTTON_POSITIVE: // yes
            Intent call = new Intent(Intent.ACTION_DIAL);
            call.setData(Uri.parse("tel:" + tv.getText().toString()));
            startActivity(call);
        break;
        case DialogInterface.BUTTON_NEGATIVE: // no
        tv.setText("Oh lalala");
        break;
        default:
        // nothing
        break;
        }
    }

}

2 个答案:

答案 0 :(得分:2)

替换:

.setPositiveButton("Yes", this)
.setNegativeButton("No", this)

.setPositiveButton("Yes", Myclass.this)
.setNegativeButton("No", Myclass.this)

因为,该语句位于onClick类型的匿名类的TextView.OnClickListener内。因此,当您尝试传递View.OnCLickListener而不是DialogInterface.OnClickListener

时,您将收到编译错误

顺便说一下,你至少应该提到你的编译错误。

答案 1 :(得分:0)

你无法传递这是tv.setOnClickListener的参考(新的TextView.OnClickListener()到Dialog界面使用这个 试试这个。这肯定会起作用。

setPositiveButton("Yes", Myclass.this)
.setNegativeButton("No", Myclass.this)