Android开发自我总结(1)————了解Activity

🎇Activity的基本用法

🎆使用Toast

  • Toast是Android系统的提醒方式,不会占用任何屏幕空间。我们可以让按钮点击事件作为Toast的触发点。在onCreate的方法中添加代码
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button1=findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"you clicked 1",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

🎆使用Menu

  • 在res文件下先新建一个menu文件夹,在里面创建一个布局文件
    在这里插入图片描述
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_item"
        android:title="add"/>
    <item
        android:id="@+id/remove_item"
        android:title="Remove"/>
</menu>
  • 之后的步骤就是去MainActivity中重写方法,加载布局
   @Override
    public boolean onCreateOptionsMenu(Menu menu){
        getMenuInflater().inflate(R.menu.menu,menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item){
        Toast.makeText(MainActivity.this,"you click"+item.getItemId(),Toast.LENGTH_SHORT).show();
        return true;
    }

🎇使用Intent

🎆显示Intent

  • 显示Intent就是很清晰的来启动Activity,只要在按钮的onClick方法内加上这条代码,我们就可以点击按钮从一个Activity跳转到另一条Activity
Intent intent =new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);

🎆隐式Intent

  • 隐式Intent来启动Activity是通过Activity一些列抽象的action和category等信息,交给系统去分析Intent,找出合适的Activity去启动
    在这里插入图片描述
    在这里插入图片描述
  • Intent通过action去寻找合适的Activity启动
  • 其中Intent中只能有一个指定的action但能指定多个category

除此之外,我们还可以使用Intent来启动其他程序的Activity(打开百度)

在这里插入图片描述

  • 其中ThirdActivity,我们可以通过它的按钮点击事件来连接到百度
    在这里插入图片描述

🎆使用Intent传递数据

  • 通过Intent提供的putExtra一系列方法来将我们的数据暂时存到Intent,在启动到另外一个Activity后,把这些数据从Intent中取出就可以了。
  • 在按钮点击事件中写如下代码
public void onClick(View view){
	String date = "Hello SecondActivity";
	Intent intent =new Intent (MainActivity.this , SecondActivity.class);
	intent.putExtra("extra_data",data);//extra_data相当于键,data相当于值,在第二个Activity我们通过键来获取值
	startActivity(intent);
}

在第二个Activity的onCreate方法中

String extradata=getIntent().getStringExtra("extra_data");

🎇Activity的生命周期

  • onCreate( ) : 在每一个Activity中都重写了这个方法,在这个方法中可以完成Activity的初始化操作,加载布局,绑定事件等等。
  • onStart():Activity由不可见变为可见的时候调用
  • onResume():在Activity准备好和用户进行交互的时候调用。此时的Activity一定位于返回栈的栈顶,并且处于运行状态
  • onPause():这个方法在系统准备去启动或者恢复另一个Activity的时候调用
  • onStop():在Activity完全不可见的时候调用
  • onDestroy() :在Activity被销毁之前调用,之后Activity的状态将变为销毁状态
  • onRestart():这个方法在Activity由停止状态变为运行状态之前调用,也就是Activity被重新调用了请添加图片描述

🎇Activity的启动模式

standard标准启动模式:每次启动都会创建一个Activity的新实例(无所谓栈中是否已经存在该Activity)

singleTop 栈顶启动模式:如果Activity在栈顶部,再次点击按钮不会增加新的Activity,如果不在栈顶,那么仍然会创建新的实例
例如:你的FirstActivity跳到了SecondActivity,在你的SecondActivity跳到了FirstActivity,这时会有两个FirstActivity
singleTask :该模式下如果发现已经存在了当前Activity实例,那么会把当前Activity移动到栈顶,并把当前Activity前的所有实例出栈
singleInstance:以此模式打开的Activity享有独立的返回栈 。任何程序调用当前Activity,只走其独立的返回栈,和自身的栈无关。

android:launchmode = "singleTask" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值