我做c++,多一些,最近稍微过了一下java的语法,然后看一些android入门书
看到如下的写法
dialButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
String phoneNumText = phoneNum.getText().toString();
if(( phoneNumText != null) && (!"".equals(phoneNumText.trim()))){
// Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+phoneNumText));
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + phoneNumText));
startActivity(intent);
}
}
});
总之是setOnClickListener函数的参数貌似是一个函数指针
然后就在括号里面直接new
但是这种new又像是在重载View.OnClickListener()函数
总之感觉好乱,java语法直接支持这么写吗,这种直接new 一个类的静态函数?
分不多,全当交流吧
------解决思路----------------------
OnClickListener是一个接口,不想直接new出来的话,也可以写一个类继承它,然后再实例化并设置。Android里面的设置监听传的都是接口形式的参数。
------解决思路----------------------
这个叫java 的匿名内部类,java虚拟机编译的时候还是会生成一个类的
------解决思路----------------------
看多了就习惯了,内部类。看android书前可以先把thinking in java看下
------解决思路----------------------
可以下载源码,然后导入到eclipse。具体你可以晚上查下。
------解决思路----------------------
同楼上,直接下载源码导入进来。然后用那个类的时候,点击去看源码就好,源码也有注释的