通过线性布局和相对布局来搭建两个Activity界面,界面效果如下图所示。当点击“去竹园按钮后”,跳转到第二个界面。在第二个界面中,点击界面中间竹子,可统计摘取竹子数并使对应竹子图片消失。点击退出竹园按钮后,返回第一个界面,并将摘取竹子数显示到竹子图片后方
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:http="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bg"><LinearLayoutandroid:id="@+id/ll_1"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#009366"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:gravity="center"android:text="首页"android:textColor="#FFFFFF"android:textSize="25sp" /></LinearLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/ll_1"><ImageViewandroid:id="@+id/iv_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:src="@drawable/panda" /><ImageButtonandroid:id="@+id/imbtn_1"android:layout_width="125dp"android:layout_height="67dp"android:layout_alignTop="@+id/iv_1"android:layout_marginLeft="50dp"android:layout_toRightOf="@+id/iv_1"android:background="@drawable/btn_peach" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/imbtn_1"android:layout_alignTop="@+id/imbtn_1"android:layout_marginLeft="25dp"android:layout_marginTop="15dp"android:text="去竹园"android:textSize="25sp" /><ImageViewandroid:id="@+id/iv_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/imbtn_1"android:layout_marginLeft="20dp"android:layout_marginTop="20dp"android:layout_toRightOf="@+id/iv_1"android:src="@drawable/bamboo" /><TextViewandroid:id="@+id/tv_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/iv_2"android:layout_marginLeft="10dp"android:layout_toRightOf="@+id/iv_2"android:text="摘到7个"android:textColor="#000"android:textSize="30sp" /></RelativeLayout>
</RelativeLayout>package com.example.myexp2_bamboo;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageButton imbtn_1 = (ImageButton) findViewById(R.id.imbtn_1);//Intent intent = new Intent(this, activity2_main.class);imbtn_1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent(MainActivity.this, activity2_main.class);startActivityForResult(intent,1);}});}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent intent) {super.onActivityResult(requestCode, resultCode, intent);if (requestCode == 1) {if (resultCode == 1) {TextView tv = findViewById(R.id.tv_1);tv.setText("摘到" + intent.getIntExtra("bamboo_number", 0) + "个");}}}
}<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/tree_bg"><LinearLayoutandroid:id="@+id/ll_2"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#009366"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:gravity="center"android:text="竹园"android:textColor="#FFFFFF"android:textSize="25sp" /></LinearLayout><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/ll_2"><ImageViewandroid:id="@+id/iv_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:src="@drawable/tree" /><ImageButtonandroid:id="@+id/im_btn_1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/iv_3"android:layout_centerHorizontal="true"android:layout_marginTop="25dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/im_btn_1"android:layout_marginLeft="100dp"android:layout_marginTop="80dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/im_btn_1"android:layout_marginLeft="220dp"android:layout_marginTop="80dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/im_btn_1"android:layout_marginLeft="270dp"android:layout_marginTop="160dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/im_btn_1"android:layout_marginLeft="160dp"android:layout_marginTop="160dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/im_btn_1"android:layout_marginLeft="60dp"android:layout_marginTop="160dp"android:background="@drawable/bamboo" /><ImageButtonandroid:id="@+id/im_btn_7"android:layout_width="100dp"android:layout_height="50dp"android:layout_below="@+id/iv_3"android:layout_alignRight="@+id/iv_3"android:layout_marginTop="20dp"android:background="@drawable/btn_peach" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@id/im_btn_7"android:layout_alignTop="@+id/im_btn_7"android:layout_marginLeft="20dp"android:layout_marginTop="15dp"android:text="退出竹园"android:textColor="#000"android:textSize="15sp" /></RelativeLayout></RelativeLayout>package com.example.myexp2_bamboo;import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;import androidx.appcompat.app.AppCompatActivity;import java.util.ArrayList;
import java.util.List;public class activity2_main extends AppCompatActivity {protected int bamboo = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity2_main);List<ImageButton> imts = new ArrayList<ImageButton>();Resources res = getResources();for (int i = 1; i <= 6; i++) {int id = res.getIdentifier("im_btn_" + i, "id", getPackageName());ImageButton zhuzi = findViewById(id);imts.add(zhuzi);}for (ImageButton imageButton : imts) {imageButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {bamboo++;imageButton.setBackground(null);}});ImageButton back = findViewById(R.id.im_btn_7);back.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.putExtra("bamboo_number", bamboo);setResult(1, intent);finish();}});}}
}<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><applicationandroid:allowBackup="true"android:dataExtractionRules="@xml/data_extraction_rules"android:fullBackupContent="@xml/backup_rules"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/Theme.MyExp2_bamboo"tools:targetApi="31"><activityandroid:name=".MainActivity"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".activity2_main"android:exported="true" /></application></manifest>
通过本次实验,我掌握了线性布局和相对布局的使用方法,掌握基本控件的属性功能及使用方法,基本掌握了Activity的数据回传。在实践过程中,我学会了如何利用Intent组件优雅地实现Activity之间的跳转
Java代码部分的编写不仅复习和巩固了我之前所学的知识,我在编写中间代码时遇到了功能无法实现的问题,因为没有在AndroidManifest.xml文件中正确登记组件。