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

来源:互联网 发布:赛维 干洗 知乎 编辑:程序博客网 时间:2024/05/23 19:40

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
原创粉丝点击