android 入门 (分析: 非匿名内部类 监听功能的实现)
android 编程:
首先是用Java中的对象来关联各种资源,不同的对象关联不同的资源,有点像单片机编程。
开始时编辑资源,视图资源由xml保存,图标资源由文件保存,字符串资源由xml保存,然后通过类声明对象,对象的实例化一般通过ID来构造,构造的过程就是java关联或绑定资源的过程。
这样就可以操作该对象了,对资源的操作就是通过对该类对象的属性和方法的访问来实现,面向对象编程。
android SDK 编译或管理的项目通常由两级目录来存放源文件(src)和自动生成文件(gen)。
还有就是资源文件(res)。根目录中还有项目文件。
这里需要注明下的就是自动生成文件:gen目录中的R.JAVA文件。它是通常是项目自动管理的,当在资源文件中添加或删除资源时自
动生成和资源对应的数值信息,说道这个对应的数值信息,就要先说说资源文件,
资源文件夹中有三种主要的资源
一是通常放置图标的资源,放置图标的资源有三个文件夹分别代表大,中,小三种图片,添加外部图片或图标时,往任意文件
夹中添加都可以,添加的方法是:通过导入(import)-(general)-(file system)
二是放置视图的资源layout
放置视图资源的layout中通常是xml文件
三是放置字符串的资源values
放置字符串资源的values中通常也是xml文件
这三种资源通过外部编辑器一旦添加或删除,都会在自动生成文件(gen)中以字段名对应数值信息这样的条目表现出来。其中图标
资源和视图资源分别以res下drawable和layout中的文件名来作为gen的字段,而字符串资源却无视values下的文件名,只对应values
中所有xml文件的各个字段名。
//通常按钮点击事件都是通过匿名内部类 即在内存中生成一个实现了View.OnClickListener接口的匿名对象,当事件发生后,匿名对象的onClick方法就会被调用,同时以函数参数的形式传入引发事件的对象.
//这里我通过不采用匿名对象的方法来实现监听功能,主要是为了理清一些思路
//采用匿名内部类有很多好处,最明显的一点就是可以直接在内部类的方法中访问外部类声明的成员.
//而下面的方法只能直接操作传入的对象
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
//自定义类,继承View.OnClickListener接口
class onclick implements View.OnClickListener
{
String string="123";
//实现接口中onClick方法,参数是监听对象
public void onClick(View view) {
((Button)view).setText(string);
}
}
public class TestActivity extends Activity {
//声明一个按钮对象
Button button;
//声明一个继承了监听接口的自定义类对象
onclick myoncOnclick;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过资源ID实例化按钮对象
button=(Button)findViewById(R.id.button1);
//实例化自定义的监听对象
myoncOnclick=new onclick();
//给按钮设置监听对象
button.setOnClickListener(myoncOnclick);
}
}