什么是活动android,Android-- 活动是什么

1.活动的基本用法

(1)手动创建活动

step1:

d83b85d42eae

手动创建一个活动

step2:

d83b85d42eae

创建成功后

(2)创建和加载布局

界面和逻辑分离

step1:

d83b85d42eae

step1

step2:

d83b85d42eae

step2

step3:

d83b85d42eae

step3

(3)在AndroidMainfest文件中注册

d83b85d42eae

在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();

}

});

}

页面代码:

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">

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" />

结果:

d83b85d42eae

image.png

(5)在活动中使用Menu

step1:

d83b85d42eae

新建menu资源文件.png

step2:

逻辑代码:

d83b85d42eae

界面菜单按钮.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;

}

运行效果:

d83b85d42eae

image.png

d83b85d42eae

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:

运行效果

点击主页面按钮,跳转成功后的界面

d83b85d42eae

image.png

(2)使用隐式Intent

step1:

在mainfest.xml 文件的活动中,添加action标签

d83b85d42eae

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);

结果:

d83b85d42eae

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);

运行效果:

d83b85d42eae

传递数据打印

(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:

运行效果

d83b85d42eae

image.png

3. 活动的生命周期

(1)返回栈

(2)活动状态

(3)活动的生存期

(4)体验活动的生命周期

(5)活动被回收了怎么办

🔫4. 活动的启动模式

(1)standard

(2)singleTop

(3)singleTask

(4)singleInstance

5. 活动的最佳实践

(1)知晓当前是哪一个活动

(2)随时随地退出程序

(3)启动活动的最佳写法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值