Android java - 有人能让我知道我应该阅读什么来理解这段代码吗?

时间:2013-09-27 13:08:04

标签: java android

我是ANDROID DEVELOPMENT的新手。我在跳入Android之前学习了java。我在书中看到这个代码,我很难过。 这怎么可以工作?

我得到了progressDialog类的setbutton方法正在接收参数的部分。

但是第3个参数是一个类?我虽然使用new关键字来创建一个新类型(一个类)。如何在创建类时引用方法(.OnClickListener) 最重要的是,在其中创建了另一种方法(onClick)。显然,java中有一些我不知道的东西。有人能告诉我在java中是否有关于这个概念的教程? 我并不担心按钮被创建和被点击。我在谈论这里使用的这种编程的概念。

非常感谢你。

progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, “OK”,
    new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog,int whichButton)
        {
            Toast.makeText(getBaseContext(),“OK clicked!”, 
                Toast.LENGTH_SHORT).show();
        }
});

2 个答案:

答案 0 :(得分:1)

这与android无关,因为它与JAVA有关,无论如何它被称为anonymous inner class

答案 1 :(得分:1)

匿名内部类在制作某个“额外”对象的实例时非常有用,例如重载方法,而不必实际为子类创建子类。

progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, “OK”,
new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int whichButton)
    {
        Toast.makeText(getBaseContext(),“OK clicked!”, 
            Toast.LENGTH_SHORT).show();
    }
});

除了上面的代码之外,你还可以声明如下,但它的代码很长。

progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "ok", new DialogDemo());

通过编写内部类如下

private class DialogDemo implements DialogInterface.OnClickListener{

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast.makeText(getBaseContext(),“OK clicked!”, 
                Toast.LENGTH_SHORT).show();
}
}