一只大二狗的Android历程--OnClickListener & Toast

2017年2月24日 4:20 PM

在经历了一天的Android学习,终于重拾了部分关于Android的记忆,

首先学习的就是上一篇博文里写到的Intent跳转Activity的用法,看了一个程序以后真的觉得这真特么简单,就是这样而已(当然这样不能将该MainActivity上的数据传到SecACT上 只是简单的简单的进行跳转,而且MainActivity还处于onPause()状态,,)

                Intent intent =new Intent(MainActivity.this,SecACT.class);//MainActivity-->当前Activity,SecAct-->目标Activity
                startActivity(intent); //执行跳转



之后我从博主 小田不紧张 的一篇博文受到启发,原来用intent跳转页面还可以这么写,省下很多时间

                startActivity(new Intent(this,SecACT.class));


一般情况下激活intent还需要触发器,也就是Button,说到Button触发intent现在整理出了两套方式,第一套是利用Button组件提供的onClick命令,另一套而是靠OnClickListener 实现的

第一套:onClick

layout_main.xml

  <Button
            android:onClick="OnClick"//自定义名称 OnClick
            android:id="@+id/BB2"
            android:text="Cancel"
            android:layout_marginLeft="10dp"/>
Java代码

public void OnClick(View v){
     startActivity(new Intent(this,SecACT.class));
    }


个人认为这么写可以用于Activity只有一个按钮的时候,按钮一多就有点捉急了。。。


第二套:OnClickListener


在说第二套之前先要说一下Toast ,个人理解Toast和它的译名“吐司”一样,当触发Toast时就和在面包机里的吐司一样一下子蹦出来,相当于一个没有UI的Dialog,好了开始


 layout_main.xml

 <Button
            android:id="@+id/BB1"
            android:text="Register"/>
        <Button
            android:onClick="OnClick"
            android:id="@+id/BB2"
            android:text="Cancel"
            android:layout_marginLeft="10dp"/>


Java代码

第一种创建内部类实现OnClickListener接口

public class MainActivity extends AppCompatActivity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1 =(Button)findViewById(R.id.BB1);
        Button b2 =(Button)findViewById(R.id.BB2);

        b1.setOnClickListener(new MyButton());//传入绑定的对象
        b2.setOnClickListener(new MyButton());;
    }
    public class MyButton implements android.view.View.OnClickListener{
        @Override
        public void onClick(View v){
            switch (v.getId()){
                case R.id.BB1:
                    startActivity(new Intent(MainActivity.this,SecACT.class));
                    break;
                case R.id.BB2:
                    startActivity(new Intent(MainActivity.this,SecACT.class));
                    break;
            }
        }
    }


第二种主类中实现OnClickListener接口

public class MainActivity extends AppCompatActivity implements android.view.View.OnClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1 =(Button)findViewById(R.id.BB1);
        Button b2 =(Button)findViewById(R.id.BB2);

        b1.setOnClickListener(this);
        b2.setOnClickListener(this);;//绑定接口

    }
//方法重载
    @Override
    public void onClick(View v){
        switch (v.getId()){
            case R.id.BB1:
                startActivity(new Intent(this,SecACT.class));
                Toast.makeText(this,"123",Toast.LENGTH_SHORT).show();//Toast.LENGTH_SHORT 存在时间,短
                break;
            case R.id.BB2:
                startActivity(new Intent(this,SecACT.class));//Toast.LENGTH_SHORT存在时间,短
                Toast.makeText(this,"456",Toast.LENGTH_SHORT).show();
                break;
        }
    }



写到这,发现其实第二套方法里的这两个,相似度非常高,在单个Activity里按钮有很多时相当省力也很省心,个人比较偏向于第二种,毕竟能少写几行代码23333,

第二套方法还有最后一种

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1 =(Button)findViewById(R.id.BB1);
        Button b2 =(Button)findViewById(R.id.BB2);
        
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,SecACT.class));
            }
        });
        
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this,SecACT.class)); 
            }
        });
这种方法和第一套的一样,适用于少量按钮的情景


(PS:写到这了,我还是没明白CSDN里那个插入代码怎么用,有的时候自动断行,有的时候不断行,总之如果效果很差,不要喷我啊 = =)

--------------------------------------------------------

今早上发现审核通过了,但是代码部分意料之中的难看,已修正





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值