相对之前做的笔记,今天有进一步学习了下Activity
主要有亮点内容
1、如何在一个应用程序当中定义多个Activity
2、启动一个Activity的方法
定义多个Activity
2.在该类当中,复写Activity当中的onCreate方法
3.在AndroidManifest.xml文件当中注册Activity
4.为Activity添加必要的控件
1.生成一个Intent意图对象
2.生成一个Intent请求
3.启动Intent
//生成一个Internt对象
Intent intent = new Intent();
//生成一个请求(从xxx到qqq的请求)
//xxx指的是当前的Activity.this
//qqq值得是需要跳转的Activity.class
//这里的两个Activity xxx和qqq不一定是要求在同一个应用程序
intent.setClass(xxx,qqq);
qqq.this.startActivity(intent);//启动这个请求
一个Intent对象包含了一组信息:
1.Component name :决定启动哪一个Activity
2.Action :指定另外一个Activity要做什么
3.Data :从当前Activity想另外一个Activity传送的数据
4.Category :不常用,先不管
5.Extras :键值对传输
6.Flags :不常用,先不管
写了一个测试的app
上图:
图一.MainActivity
图二、SecondActivity
图三、输入短信内容后即将点击“启动发送短信界面”
大致说下内容,图一图二分别是MainActivity和SecondActivity,操作是点击“启动第二个Activity”后跳转到第二个Activity界面,也就是图二,图三是在EditText输入完发送号码和发送内容后点击“启动发送短信洁面后”,会调用系统自带的短信界面,并把要发送的号码和要发送的内容填充到短信界面里面。
源码如下:
1、MainActivity
package com.example.urien.urienandroid;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
//第一步、声明控件
private Button button_launch;
private Button button_SendMessage;
private EditText editText_name;
private EditText editText_Message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第二步、找到对应的控件
button_launch = findViewById(R.id.button_launch);
button_SendMessage = findViewById(R.id.button_sendMessage);
editText_name = findViewById(R.id.editText_name);
editText_Message = findViewById(R.id.editText_Message);
//第四步、绑定监听器
button_launch.setOnClickListener(new buttonListener_launch());
button_SendMessage.setOnClickListener(new buttonListener_SendMessage());
}
//第三步、复写监听器的方法
class buttonListener_launch implements Button.OnClickListener{
@Override
public void onClick(View v) {
/**
* 定义一个intent意图对象
*/
Intent intent = new Intent();
/**
* 存入一个字符串类型的键值对
* 键的名字是“key'”
* 键值是“value”
*/
intent.putExtra("key","value");
/**
* 意图是Activity从MainActivity跳转到SecondActivity
*/
intent.setClass(MainActivity.this,SecondActivity.class);
/**
* 启动
*/
startActivity(intent);
}
}
class buttonListener_SendMessage implements Button.OnClickListener{
@Override
public void onClick(View v) {
String name = "smsto:" + editText_name.getText().toString();
String message = editText_Message.getText().toString();
Uri uri = Uri.parse(name);
Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
intent.putExtra("sms_body",message);
startActivity(intent);
}
}
}
2、SecondActivity
package com.example.urien.urienandroid;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
//第一步、声明控件
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
/**
* 得到传过来的意图对象
*/
Intent intent = getIntent();
/**
* 得到传递过来意图对象中的键多对应的键值
*/
String value = intent.getStringExtra("key");
//第二步、找到控件
textView = findViewById(R.id.text_second);
textView.setText(value);
}
}
xml代码非常简单,代码大多都有注释,不一一记录了。
By Urien 2018年6月10日 23:28:52