安卓按钮点击事件的多种实现方式

方式一【定义内部类】:


根据ui写业务逻辑 在mainActivity->onCreate方法里面写逻辑

 btn_call.setOnClickListener(new MyClickListener());

给按钮设置一个点击事件

//加载一个布局setContentView(R.layout.activity_main);
//[1]找到我们关心的空间edittext button et_number = (EditText) findViewById(R.id.editText1);  
//[2]找到按钮 Button btn_call = (Button) findViewById(R.id.button1);

自己定义一个类去实现方法需要的参数类型

 private class MyClickListener implements OnClickListener{
    //当按钮被点击的时候调用    
    @Override    
    public void onClick(View v){        
        //[4]获取edittext文本内容        
        String number = et_number.get_Text().toString().trim();        
        if("".equals(number)){            
        /**            
        * context  上下文            
        */            
            Toast.makeText(MainActivity.this,"number不能为空",1).show();            
            return;        
        }                
    
        //[5]进行电话拨打 意图Intent        
        Intent intent = new Intent();
        //创建一个意图对象        
        //[5.1]设置动作        
        intent.setAction(Intent.ACTION_CALL);        
        //[5.2]设置要拨打的数据        
        /**        
        * uri:统一资源提示符        
        */        
        intent.setData(Uri.parse("tel:"+number));                
        //[6]开启意图        
        startActivity(intent);    
        }
    }

一定要记得加上拨打电话的权限 

方式二【定义匿名内部类】:


//按钮的第二种点击事件

//第一种的方法是这样的 btn_call.setOnClickListener(new MyClickListener());

btn_call.setOnClickListener(new MyClickListener(){
    @Override
    public void onClick(View v){
        //[4]实现拨打电话的逻辑
        //把之前内部类里面拨打电话的逻辑拿出来写成一个function(callPhone)然后直接调用就可以了
        callPhone();
    }
});

方式三(当页面上按钮非常多的情况下适用):


//在onCreate找到按钮空间定义多个
Button btn_call1 = (Button) findViewById(R.id.button1);
Button btn_call2 = (Button) findViewById(R.id.button2);
Button btn_call3 = (Button) findViewById(R.id.button3);


btn_call.setOnClickListener(this);
//this是MainActivity 这个参数的类型必须是onClickListener
//所以在当前类上实现onclick接口类型
//public class MainActivity extends Activity implements onClickListener
//注意引用的是View包下的onClickListene

//实现这个接口要实现这个接口内未实现的方法onClick
//当点击按钮的时候执行
@Override
public void onClick(View v){
    //具体判断点击的是哪个按钮
    switch(v.getId()){
        case R.id.button1://代表点击了第1个按钮
            
            break;
            
        case R.id.button2://代表点击了第2个按钮
            
            break;
            
        case R.id.button3://代表点击了第3个按钮
            
            break;
            
        default:
            break;
    }
}

方式四:(声明一个方法 方法名和你要点击的这个按钮在布局中声明的onClick一样)


在activity_main.xml里给Button添加onClick属性

blob.png

安卓6.0下验证权限

// 需要验证的权限
int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.CALL_PHONE);
if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
// 弹窗询问 ,让用户自己判断
    requestPermissions(new String[]{Manifest.permission.CALL_PHONE},
    REQUEST_CODE_ASK_PERMISSIONS);
    return;
}

svn: E170001: Authorization failed

出现该问题基本都是三个配置文件的问题,下面把这个文件列出来。

svnserve.conf:

[general]

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

passwd:

[users]

harry = harryssecret

authz:

[groups]

[/]

harry = rw

出现authorization failed异常,一般都是authz文件里,用户组或者用户权限没有配置好,只要设置[/]就可以,代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。

安卓學習筆記

Android Studio 打包
http://www.open-open.com/lib/view/open1441896025274.html

单元测试

  1. 定义一个类集成AndroidTestCase

  2. 在清单文件配置users-library和instrumentation

blob.png

blob.png

3.或者可以自己手动创建一个安卓测试工程,会自动配置好

Andriod Studio 把局部变量变成全局变量的快捷键是Ctrl + Alt + F 和eclips上面的功能相同 很好用

Android studio 中的file explorer

http://blog.csdn.net/baduspace/article/details/43735109

Blog移植纪念

纪念一下陪伴了我3年的stblog,今天把blog整个移植到wordpress上。

因为系统移植所以有一些问题

比如说之前的代码无法正常展示

因为前面的文章太多了 一个一个修改太累 索性不整理了 哈哈哈

以后慢慢的再添加吧