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里那个插入代码怎么用,有的时候自动断行,有的时候不断行,总之如果效果很差,不要喷我啊 = =)
--------------------------------------------------------
今早上发现审核通过了,但是代码部分意料之中的难看,已修正
新闻热点
疑难解答