MainActivity.java代码
package com.example.hello;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
private Button bt1;
private Button bt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
* 1.初始化当前所需要的控件,如何初始化一个控件
* findViewById---返回一个View的对象
* findViewById是如何查找一个对应View的id
* 2.设置一个Button的监听器,通过监听器实现我们点击Button要操作的事情
*/
bt1=(Button)findViewById(R.id.button1);
bt2=(Button)findViewById(R.id.button2);
/*
*1.监听事件通过第一种方式实现(匿名内部类)
*/
//设置点击事件
// bt1.setOnClickListener(new OnClickListener(){
//
// @Override
// public void onClick(View v) {
// // TODO Auto-generated method stub
// System.out.println("我的按钮被点击了");
// }
// });
/*
* 2.点击事件外部类的写法和作用
*
*/
bt1.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v) {
//调用父类的onClick方法
super.onClick(v);
/*
* Toast:是一个类,主要管理消息的提示.
* makeText(),是Toast的一个方法,用来显示信息,分别有三个参数.
*/
Toast.makeText(MainActivity.this, "bt1要执行的逻辑", 1).show();
}
});
bt2.setOnClickListener(new MyOnClickListener(){
@Override
public void onClick(View v) {
//调用父类的onClick方法
super.onClick(v);
Toast.makeText(MainActivity.this, "bt2要执行的逻辑", 1).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
/*
*OnCickListener是一个接口
*/
class MyOnClickListener implements OnClickListener{
public void onClick(View v){
/*log.i是打印输出日志的,这个函数在项目中的主要作用就是,
* 你能够查看你想要知道的一些参数数据,而且可以帮你找到程序的运行出错的位置。
* i指的是info,信息的意思,和log.w()代表warn,log.e()代表error,
* log.v()代表verbose,log.d()代表debug一样,都是用来输出日志,只是标记不一样
* 一般调程序习惯用log.e(),因为这在logcat中会显示成红色
*/
//让所有使用当前外部类的点击事件的按钮都要做出一个动作(如同一个动画效果),改变button本身的透明度
v.setAlpha(0.5f);
}
}