Activity的实现和Intent使用1(初学代码)

练习内容

1、启动与销毁Activity

  • 首先创建一个工程ActivityTest,
  • 创建一个名为FirstActivity的活动
  • 在Manifest文件中注册该活动
  • 重写onCreate方法,并在改方法中加载布局first_layout。
  • 创建布局first_layout.xml,在该布局中添加一个Button控件
  • 在onCreate方法中获得布局中Button的引用
  • 重写onDestroy方法,并在该方法中用Log.d打印该Activity退出的信息:Activity名称+“退出了,bye!”

代码:

FirstActivity.kt

class FirstActivity : AppCompatActivity() {
   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.first_layout)
       val button1 = findViewById<Button>(R.id.btn)
       button1.setOnClickListener {
       }
//        Log.d("FirstActivity", "FirstActivity启动了")
   }
   override fun onDestroy() {
       super.onDestroy()
       Log.e("FirstActivity", "FirstActivity退出了,bye!")
   }
}

first_layout.xml

Button
       android:id="@+id/btn"
       android:layout_width="match_parent"
       android:layout_height="102dp"
       android:text="button" />

注冊文件:

<activity
   android:name=".FirstActivity"
   android:exported="true"
   android:label="This is my FirstActivity">
<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

日志输出及结果:

2、启动Activity

  • 创建SecondActivity和ThirdActivity, SecondActivity1加载布局second_layout,ThirdActivity加载布局third_layout。
  • 在上题的FirstActivity的布局中添加两个按钮(Button1, Button2),点击Button1时使用显式Intent启动SecondActivity,点击Button2时使用隐式Intent启动ThirdActivity;
  • 此外从FirstActivity中传递一个字符串”Hello SecondActivity”到SecondActivity中,并在SecondActivity中用TextView控件显示。(实验报告中只需写出onCreate方法,实现该功能的代码写在onCreate方法中
  • FirstActivity.kt

  • override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.first_layout)
    
       val button1 = findViewById<Button>(R.id.btn1)
       val button2 = findViewById<Button>(R.id.btn2)
    
       button1.setOnClickListener {
           // 启动SecondActivity
           val intent = Intent(this@FirstActivity, SecondActivity::class.java)
           intent.putExtra("message", "Hello SecondActivity")
           startActivity(intent)
       }
    
       button2.setOnClickListener {
           // 启动ThirdActivity
           val intent = Intent("com.example.intent.action.THIRD_ACTIVITY")
           startActivity(intent)
       }
    }

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

 SecondActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.second_layout)

   // 获取传递的消息
   val message = intent.getStringExtra("message")

   // 在TextView中显示消息
   val textView = findViewById<TextView>(R.id.textView)
   textView.text = message
   
   //返回按钮
   val backButton = findViewById<Button>(R.id.backButton)
   backButton.setOnClickListener {
       finish()
   }
}

 second_layout.xml

<TextView
   android:id="@+id/textView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Message from FirstActivity" />
<Button
   android:id="@+id/backButton"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:rotationX="-5"
   android:text="Back" />

ThirdActivity.kt

override fun onCreate(savedInstanceState: Bundle?) {
   super.onCreate(savedInstanceState)
   setContentView(R.layout.third_layout)
   
   val textView = findViewById<TextView>(R.id.textView)
   textView.text="Third Activity"
   //返回按钮
   val backButton = findViewById<Button>(R.id.backButton)
   backButton.setOnClickListener {
       finish()
   }

 third_layout.xml

<TextView
   android:id="@+id/textView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Message from FirstActivity" />
<Button
   android:id="@+id/backButton"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:rotationX="-5"
   android:text="Back" />

 注册文件必不可少

AndroidManifest.xml

<activity
   android:name=".FirstActivity"
   android:exported="true"
   android:label="FirstActivity">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />

       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>
<activity android:name=".SecondActivity"
   android:label="SecondActivity">

   <!-- 如果需要在Intent中使用指定的Action来启动,可以在这里添加intent-filter -->
</activity>
<activity
   android:name=".ThirdActivity"
   android:exported="true"
   android:label="ThirdActivity">

   <!-- 如果需要在Intent中使用指定的Action来启动,可以在这里添加intent-filter -->
   <intent-filter>
       <action android:name="com.example.intent.action.THIRD_ACTIVITY" />

       <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity>

结果:

 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值