掌握线性布局和相对布局的使用方法
掌握基本控件的属性功能及使用方法
掌握Activity的数据回传
通过线性布局和相对布局来搭建两个Activity界面,界面效果如下图所示。当点击“去竹园按钮后”,跳转到第二个界面。在第二个界面中,点击界面中间竹子,可统计摘取竹子数并使对应竹子图片消失。点击退出竹园按钮后,返回第一个界面,并将摘取竹子数显示到竹子图片后方。
布局与控件的用法
使用Activity的数据回传实现实验要求
activity_main.xml
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
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); Listimts=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空 就形成了点击后消失还能计数的效果
还没有评论,来说两句吧...