我是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();
}
});
答案 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();
}
}