1 学习了在xml文件中的基本的布局之后,相对只在MainActivity.java中用Java布局或者两者混合布局,它是比较简单的,但是布局里的各种控件和用户是没有交互的,那该如何设置,实现人机简单的交互呢?
原则是:
1获取代表控件的对象
2定义一个类,实现监听器接口
3生成监听器对象
4为控件绑定监听器对象
具体的代码解释:
(有疑问参考上一节activity启动的流程)
一.src目录下的MainActivity.java语句:
package com.study.test_activity;//指定这个java文件属于哪一个包(package)
import android.os.Bundle;
import android.app.Activity;
importandroid.view.Menu;//这个java文件加载指定的类或是包以供此文件使用
public class MainActivity extends Activity { //创建继承自Activity的MainActivity的类
@Override //复写标示符,可省略
protected void onCreate(Bundle savedInstanceState) { //复写了父类的onCreate方法
super.onCreate(savedInstanceState);//调用了父类的onCreate方法
setContentView(R.layout.activity_main);//调用了布局文件
}
二.获取控件的对象:findViewById方法
比如:Buttonbutton=(Button)findViewById(R.Id.xxx)
三.设置控件的方法,如:
xxx.setText(“你好”);
xxx.setBackgroundColor(color.RED);
xxx.setTextSize(20);
xxx.TextColor(Color.BLACK);等等
四.绑定监听器:
定义一个内部类来实现监听器接口,如:classxxx implements OnClickListener,再通过setOnClickListener()来设
置OnClickListener作为监听器。
(还有其他方法吗?刚开始还没看API,先接触基本的吧)
2.下面是他以一个实例解释的过程(这个应用是从0开始,点击一下按钮,加一)(代码如下):
(1)MainActivity.Java中
public class MainActivity extends Activity{
//声明成员变量?textView1、button、number(初始化为0)
privateTextView textView1;
privateButton button;
int number = 0;
@Override
protectedvoid onCreate(Bundle savedInstanceState) { //复写了父类的onCreate方法
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);//调用了父类的onCreate方法
setContentView(R.layout.activity_main);//调用了布局文件
//获取控件的对象textView1、 button
textView1= (TextView) findViewById(R.id.textv1);
button= (Button) findViewById(R.id.button1);
//生成一个监听器对象,并通过setOnClickListener()来设
置OnClickListener作为监听器监听button
Listenerlistener = new Listener();
button.setOnClickListener(listener);
}
//定义一个内部类来实现监听器接口
classListener implements OnClickListener {
@Override
publicvoid onClick(View v) {
//TODO Auto-generated method stub
number++;
textView1.setText(number+ "");
}
}
(2)xml文件中只有一个button控件,代码略。。。