首先是创建新的Activity
例子:
*new -> java Class -> 命名 此时是一个空的Activity
*继承Activity == extends Activity
*重写Activity中的OnCreate方法
*Alt + Insert 选择 Override Methods 并选择需要继承的方法
*此时Activity已经建好
*勿忘!需要将Layout加入,否则无法打开此页面,程序会崩掉。
setContentView(R.layout.activity_main);*使用setContextView()方法,将参数填写完整。
*最后!最后!最后! 在 AndroidManifest.xml中,将新创建的Activity注册一下。
<activity android:name=".qq_login">*至此,完成创建Activity工作。
—————————————————我是可爱的分割线—————————————————
其次是在Activity中找到控件
private Button Btn_cal; private Button Btn_main; private Button Btn_QQ;
Btn_cal = (Button)findViewById(R.id.button_calculator); Btn_main = (Button)findViewById(R.id.button_main); Btn_QQ = (Button)findViewById(R.id.button_QQ);
可以用一句话写出,并用快捷键直接生成 成员变量。
快捷键 : Ctrl + Alt + f
找到控件之后,给按钮添加事件。
此处使用的是java的GUI编程中的设置监听器。
class ButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(MainActivity.this,qq_login.class); MainActivity.this.startActivity(intent); } }
格式: class 方法名 implements OnClickListener{
重写 onClick方法.....
}
监听器写完之后,需要将监听器捆绑到按钮上。
Btn_QQ.setOnClickListener(new ButtonListener());此时,按钮的事件设置完成。
此时,需要使用Intent这个小工具。
Intent是不同Activity之间传值的小船,小船,小船。
也可以是不同app中的Activity传值的小船。
(暂且理解到这里)
使用方法如下:
Intent intent = new Intent(); intent.setClass(MainActivity.this,qq_login.class); MainActivity.this.startActivity(intent);*new一个Intent对象。
*对象.setClass(这个Activity.this , 需要跳转到的Activity);
*此Activity.this.startActivity(intent);
*此时就可以跳转到“新的Activity”中了,摁返回键是可以直接返回的。
两个Activity之间互相传值:
此时是借助Intent的Extra方法。
首先:
原Activity:
intent.putExtra("test","test_text");
*注意,使用Extra传值是使用 键-值 对 的方式进行set值。
目标Activity:
Intent intent = getIntent(); String value = intent.getStringExtra("test");
*新建Intent对象,使用getIntent()方法获取,而不是new出来。
*使用getStringExtra()方法,并将 原Activity中的 “键” 名称写入,即可取出该“值”。
*到此就可以传值成功了。
Intent 不仅可以同app之间的不同Activity互相传值,也可以不同app之间传值。
例子:
在我的app中调用 短信app 并起草一封短消息
class sendMessage implements View.OnClickListener{ @Override public void onClick(View v) { Uri uri = Uri.parse("smsto:10086"); Intent intent = new Intent(Intent.ACTION_SENDTO,uri); intent.putExtra("sms_body","3"); startActivity(intent); } }使用了intent中的 Intent.ACTION_SENDTO 这一属性,并传进去uri值。
将Extra设置短信内容 3,。
最后startActivity即可。
使用Data方法传值还不会,后续更新。