1.活动的基本用法
(1)手动创建活动
step1:
手动创建一个活动step2:
创建成功后(2)创建和加载布局
界面和逻辑分离
step1:
step1
step2:
step2
step3:
step3
(3)在AndroidMainfest文件中注册
在mainfest中注册界面.png(4)在活动中使用Toast
逻辑代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_four);
// 在点击按钮的时候,弹出Toast
// step1: 找到按钮元素(组件)
Button button4 = (Button) findViewById(R.id.button4);
// step2: 按钮添加点击事件的监听
// 参数: View 对象的事件监听
button4.setOnClickListener(new View.OnClickListener(){
// 重新定义了点击事件
@Override
public void onClick(View v){
// 使用系统提供的Toast进行设置文字
// 使用makeText() 创建出来一个Toast 对象
// Toast.LENGTH_SHORT 显示时长
Toast.makeText(FourActivity.this,"You click four_activity_button",Toast.LENGTH_SHORT).show();
}
});
}
页面代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_four"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.oliva.app3.FourActivity">
<!--定义一个button 和 id:button2-->
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="114dp"
android:layout_marginTop="186dp"
android:id="@+id/button4" />
</RelativeLayout>
结果:
image.png
(5)在活动中使用Menu
step1:
新建menu资源文件.png
step2:
逻辑代码:
界面菜单按钮.png
代码:
// 菜单选择
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"You click add",Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"You click remove",Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
运行效果:
image.png image.png
(6)销毁一个活动
//开启活动
// startActivity(intent);
// Toast.makeText(MainActivity.this, "You click button", Toast.LENGTH_SHORT).show();
// 销毁活动
// 相当于返回--back
finish();
2.使用Intent 在活动之间穿梭
(1)使用显式Intent
step1:
从主页面点击按钮进入第二个页面
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button) findViewById(R.id.button_1);
//元素监听事件
button1.setOnClickListener(new View.OnClickListener(){
//当点击之后,执行的函数
@Override
public void onClick(View v) {
// 显示intent
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
// 给定回调结果请求码是1 --》 回调函数 onActivityResult
startActivityForResult(intent,1);
}
});
step2:
运行效果
点击主页面按钮,跳转成功后的界面
image.png
(2)使用隐式Intent
step1:
在mainfest.xml 文件的活动中,添加action标签
image.png
step2:
引用:
// 隐示intent
Intent intent = new Intent("com.example.SecondActivity.ACTION_START");
intent.addCategory("com.example.SecondActivity.MY_CATEGORY");
//开启活动
startActivity(intent);
(3)更多隐式Intent的用法
可以进行传递数据,执行时,会自动跳转到浏览器,输入www.baidu.com
// 更多的隐式调用,可以传递数据
// ========2========
Intent intent = new Intent(Intent.ACTION_VIEW);
//Uri 对象,是一个网址对象
intent.setData(Uri.parse("http://baidu.com"));
startActivity(intent);
// ========3========
Intent intent = new Intent(Intent.ACTION_DIAL);
//
intent.setData(Uri.parse("tel:18010273600"));
startActivity(intent);
结果:
image.png
(4)向下一个活动传递数据
step1:
设置数据:
//进行数据的传递
// ========4========
String data = "Hello SecondActivity";
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(intent);
step2:
接受数据:
// 将传递过来的数据取出来
// ========1========
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
Log.d("SecondActivity",data);
运行效果:
传递数据打印
(5)返回数据向向一个活动
step1:
准备数据:
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second2);
// ========2========
// 向上传递数据
// 第二个页面(本页面)button 按钮元素的获取
Button button2 = (Button) findViewById(R.id.button);
// 监听事件
button2.setOnClickListener(new View.OnClickListener(){
////点击事件,当按钮点击的时候,向上一个页面返回数据
@Override
public void onClick(View v){
// 目标
Intent intent = new Intent();
//存储结果
intent.putExtra("data_return","Hello MainActivity 2");
//放置到结果中,专门向上一个活动返回数据
// 参数1: 处理结果,
// 参数2: intent对象
setResult(RESULT_OK,intent);
// 返回上一个页面,将这个页面,进行销毁
finish();
}
});
}
}
step2:
接受结果:
// ========5========
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
// 给定回调结果请求码是1 --》 回调函数 onActivityResult
startActivityForResult(intent,1);
}
});
//3个参数
// 1): 启动活动时传入的请求码--》判断数据的来源
// 2):返回数据时,处理结果码
// 3):参数data,具体的数据由intent对象携带
@Override
protected void onActivityResult (int requestCode,int resultcode,Intent data){
switch (requestCode){
case 1:
if(resultcode == RESULT_OK){
String returnedData = data.getStringExtra("data_return");
Log.d("MainActivity",returnedData);
}
break;
default:
}
}
step3:
运行效果
image.png
网友评论