移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子

掌握线性布局和相对布局的使用方法

掌握基本控件的属性功能及使用方法

掌握Activity的数据回传

通过线性布局和相对布局来搭建两个Activity界面,界面效果如下图所示。当点击“去竹园按钮后”,跳转到第二个界面。在第二个界面中,点击界面中间竹子,可统计摘取竹子数并使对应竹子图片消失。点击退出竹园按钮后,返回第一个界面,并将摘取竹子数显示到竹子图片后方。

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第1张图片
移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第2张图片

布局与控件的用法

使用Activity的数据回传实现实验要求

activity_main.xml



    
        
    

    
    
    


    
    







移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第3张图片

MainActivity.java

package com.example.shiyan2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.pm.Attribution;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageButton imbtn_1=(ImageButton) findViewById(R.id.imbtn_1);
        imbtn_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(MainActivity.this,ZhuyuanActivity2.class);
                startActivityForResult(intent,1);
            }
        });
    }
    @Override
    protected 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)+"个");
            }
        }

    }
}

activity_zhuyuan2.xml



    
        
    
    

        
        

        

        
        
        
        
    
        


    
    





移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第4张图片

ZhuyuanActivity2.java

package com.example.shiyan2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class ZhuyuanActivity2 extends AppCompatActivity {
protected int bamboo=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zhuyuan2);
        List imts=new ArrayList();
        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() {
                @Override
                public void onClick(View view) {
                    bamboo++;
                    imageButton.setBackground(null);
                }
            });
            ImageButton back=findViewById(R.id.im_btn_7);
            back.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent=new Intent();
                    intent.putExtra("bamboo_number",bamboo);
                    setResult(1,intent);
                    finish();
                }
            });
        }
    }
}

小专题讲解

六个竹子一个一个建立对象编写点击事件太麻烦

直接两个循环解决问题

先搞一个list集合类

用于等会循环把按钮对象全装进去

还得弄个这

Resources res =getResources();

等会获取id好用

看循环

一个一个装进集合里面

然后foreach都遍历一遍 都装上监听器

把点击事件弄成点击后bamboo加一 然后把背景background点成null空 就形成了点击后消失还能计数的效果

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第5张图片

实验结果

主页面

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第6张图片

点击去竹园按钮前往下一个activity

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第7张图片

竹子点击后消失 是因为设置了点击后setbackground=null 并计数 待会传回第一个界面

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第8张图片

这里点击了三个imagebutton计数3,点击退出竹园 通过finish()返回上个activity 通过intent传输数据

移动应用开发技术——Android Studio实验二——Activity的调用——竹园摘竹子_第9张图片

你可能感兴趣的:(Android,studio,android-studio,android,studio)