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); //执行跳转
startActivity(new Intent(this,SecACT.class));
第一套: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只有一个按钮的时候,按钮一多就有点捉急了。。。
在说第二套之前先要说一下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里那个插入代码怎么用,有的时候自动断行,有的时候不断行,总之如果效果很差,不要喷我啊 = =)
--------------------------------------------------------
今早上发现审核通过了,但是代码部分意料之中的难看,已修正