Activity的实现和Intent使用2

1、创建2个Activity: NormalActivity和DialogActivity,对应的三个layout命名为normal_layout和dialog_layout。

NormalActivity是普通的Activity

DialogActivity的主题为android:theme="@style/Theme.AppCompat.Dialog(在AndroidManifest.xml中对应的DialogActivity的Activity标签中加入以上字段

在FirstActivity中添加2个按钮,通过点击这两个按钮启动NormalActivity和DialogActivity。

重写这三个Activity的生命周期7个回调方法。在回调方法中打印Activity所在的类名称和回调方法名称。如:

Java

@Override
protected void onStart() {
    super.onStart();
    Log.d(TAG, getClass().getSimpleName()+": onStart");
}

Kotlin

override fun onStart() {

super.onStart()

Log.d(TAG, “$localClassName: onStart”)

}

代码:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_first)
val buttonNormal = findViewById<Button>(R.id.btn1)
val buttonDialog = findViewById<Button>(R.id.btn2)
buttonNormal.setOnClickListener {
startActivity(Intent(this, NormalActivity::class.java))
}
buttonDialog.setOnClickListener {
startActivity(Intent(this, DialogActivity::class.java))
}
}
override fun onStart() {
super.onStart()
Log.d(TAG, "${localClassName}: onStart")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "${localClassName}: onResume")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "${localClassName}: onPause")
}
override fun onStop() {
super.onStop()
Log.d(TAG, "${localClassName}: onStop")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "${localClassName}: onDestroy")
}
override fun onRestart() {
super.onRestart()
Log.d(TAG, "${localClassName}: onRestart")
}
companion object {
const val TAG = "ActivityLifecycle"
}
NormalActivity.kt DialogActivity.kt 同理
dialog_layout.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dialog Activity"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rotationX="-5"
android:text="Back" />
normal_layout.xml
<TextView
android:layout_width="wrap_content"
8
android:layout_height="wrap_content"
android:text="Normal Activity"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rotationX="-5"
android:text="Back" />
first_layout.xml
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start SecondActivity"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start ThirdActivity"
android:layout_below="@id/btn1"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"/>
AndroidManifest.xml
<activity
android:name="com.example.activitytest02.DialogActivity"
android:label="DialogActivity"
android:theme="@style/Theme.AppCompat.Dialog" />
<activity
android:name="com.example.activitytest02.NormalActivity"
android:label="NormalActivity"/>
<activity
android:name="com.example.activitytest02.FirstActivity02"
android:exported="true"
android:label="FirstActivity02">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
9
</activity>

运行结果为:

进入FirstActivity02.kt

 

点击Normal按钮

返回FirstActivity

点击Dialogact按钮

 

返回FirstActivity

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 程序设计中,IntentActivity 是非常常见的两个概念,它们分别用于实现不同的功能。 1. Intent Intent 是用于在 Android 应用程序之间传递数据的一种机制。通过 Intent,我们可以实现 Activity 之间的数据传递、启动系统组件、启动服务等操作。Intent 由两部分组成:Action 和 Data。其中,Action 表示要执行的操作,如打开某个 Activity、发送邮件等;Data 则描述了要操作的数据,如要打开的文件、要发送的邮件地址等。 下面是一个简单的 Intent 示例代码: ```java Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("name", "Tom"); startActivity(intent); ``` 上述代码中,我们创建了一个 Intent 对象,并将要跳转的 Activity 指定为 SecondActivity。同时,我们还通过 putExtra() 方法向目标 Activity 传递了一个名为 "name" 的参数,值为 "Tom"。最后,我们调用 startActivity() 方法启动目标 Activity。 2. Activity Activity 是 Android 应用程序中的一个组件,用于展示用户界面。每个 Activity 都拥有自己的布局和生命周期,并且可以通过 Intent 启动其他 Activity。 下面是一个简单的 Activity 示例代码: ```java public class SecondActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); textView = findViewById(R.id.textView); Intent intent = getIntent(); String name = intent.getStringExtra("name"); textView.setText("Hello, " + name); } } ``` 上述代码中,我们创建了一个名为 SecondActivityActivity,并在 onCreate() 方法中设置了其布局文件为 activity_second.xml。同时,我们还通过 getIntent() 方法获取了传递过来的 Intent 对象,并从中获取了名为 "name" 的参数值。最后,我们将参数值设置到了 TextView 控件中。 以上就是 IntentActivity 的简单使用方法。在实际开发中,它们还有很多高级用法,如启动 Activity 后获取返回值、使用 Intent 进行隐式调用等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值