一、工程结构介绍
- 一个java文件:代表程序的主程序;
- gen/工程名/R.java:所有的控件定义包括布局文件等,全部以16进制方式存在R,java中,这个文件不允许修改,是ADT自动生成的。若提示这个文件错误或者找不到该文件,到Eclipse下的Project-Clean窗口,选择任意工程,点击“OK”,会重新编译这个工程,R.java会重新生成;
- bin/:存储一些编译时的文件,编译好的apk也存在于该目录下,apk默认的是debug签名;
- res/layout/activity_main.xml:apk文件界面的布局文件,它布局成怎样,主界面就显示成怎样;
- res/values/srings.xml:key(value),假设应用当中有很多代码,有很多字符串是应用同一个字符串,可以在该文件中定义这个字符串,比如a = bbbbb,代码中所有用到bbbbb的地方都可以用a代替;
- res/values/styles.xml:假设某一个控件,并不是android的原生控件,若该控件在代码中被用到多次,则可以将控件的定义打包在该文件中,需要用到时调用该文件中的某个style即可;
- res/AndroidManifest.xml:写多个activitis或者多services的应用时,所有的测试代码信息需要注册在该文件中,android任何一个权限问题也要写在里面;
- drawable-hdpi、ldpi、mdpi、xhdpi:应用在各个分辨率下所用的图片,可以根据需求自己添加drawable文件夹。
activity_main.xml是一个配置文件,里面编辑的是控件对应的代码:
android:id="@+id/button1"
android:text="改变text颜色" //将text改掉会在Graphical Layout中立即看到效果 。
每个控件都有会id和text两个属性,控件显示什么,text设置什么;id是在java文件中运用的。
SDK文档中部分方法的介绍:
setContentView(View):将配置文件直接显示在应用的主界面上;
onCreate(Bundle):初始化activity;
public class MainActivity extends Activity { //主类的类名是MainActivity,要写一个程序,必须extends一个Activity;
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle saveInstanceState){ //初始化Activity的方法,是继承于Activity的所以必须用父类,super.onCreate方法;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //android当中所有的引用都从R文件走,除非引用的是某个文件;调用xml设置主界面;
final TextView tv = (TextView) findViewById(R.id.textView1); //创建一个实例tv,引用findViewById会获取到UI界面上任意想获取的widget;
tv.setBackground(ViewDrawable);
Button bt = (Button)findViewById(R.id.button1);
Button bt2 = (Button)findViewById(R.id.button2);
这个控件是在Java类中调的,实例也是在Java类中创建的,实例与activity_main.xml下面定义的控件关联。
sdk文档非常重要!!
静态接口OnClickListener:假设一个button,点击后希望产生某个效果,需要设置点击的监听;
OnClick(View v):当view被点击的时候,OnClickListener下编写的方法等就会生效;
bt.setOnClickListener(new OnClickListener(){
@Override //重写onClick方法
public void onClick(View v) {
//TODO Auto-generated method stub
tv.setTextColor(Color.BLUE);
}
}); //点击bt,text将显示为蓝色;
设置第二个button的监听器第二种方法,这里修改了text的显示
class Button2Listener implements OnClickListener{ //写一个内部类Button2Listener,依赖OnClickListener
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
tv.setText("测试之道越来越好");
}
} //点击bt2后,text内容改变。
bt2.setOnClickListener(new Button2Listener()); //内部类与bt2关联。
string.xml里定义一个字符
key value
#FFFFFFFF<.drawable>
当用到#FFFFFFFF时可以调用back_colour。