博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android添加button并响应
阅读量:4602 次
发布时间:2019-06-09

本文共 3974 字,大约阅读时间需要 13 分钟。

1.首先要在activity_main.xml文件里新建两个button标签。

  

1 
11 12
21 22
30
38 39 40

这里出现了几个问题。

  1)布局问题:我现在用的Android环境是最新的,新建工程下activity_main.xml文件自带布局并非LinearLayout线性布局。之前对照书上的内容跟网上视频教程总感觉不对劲。之后,改成了LinearLayout线性布局之后,又发现几个控件挤成一横排,控件甚至被挤出视图外面。原来线性布局默认的是横向的,不是我们所认为的竖向。这里添加一句

android:orientation="vertical",所有空间依次竖向排列。   2)硬性编码问题:在定义控件的宽度(width)和高度(height)的时候我使用了数值。一般人现在都知道如果用像素dx作为单位来定义控件的宽和高会出现warning的黄色警告。但是我在使用dp作为单位的时候也出现了warning,最后在提示下使用的是sp。还有,在定义Android:text的时候,不引用string下的元素而直接输入内容也会出现warning警告。这种硬性编码引起warning警告一般不会导致整个程序出错,但是良好的习惯和编程思路会减少出错的概率。   3)我在设置id的时候出现了个小毛病,写错了,将android:id="@+id/bSubOne"写成了android:id="@id/bSubOne"少了一个+号,导致程序完全运行不了,出现红色警报。千万细心。
2.其次在resources下的string.xml文件里添加元素
1 
2
3 4
TestProject
5
Hello world!
6
Settings
7
总数为:0
8
数值减一
9
数值加一
10 11

将button的部分信息在这里添加,更加方便修改和管理。如果需要使用,直接引用。

3.在MainActivity函数中添加响应函数

1 package com.fate.testproject; 2  3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.view.Menu; 6 import android.view.MenuItem; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.TextView;10 11 12 public class MainActivity extends Activity {13 14     int counter;//创建int变量counter15     Button mAddOne, mSubOne;//创建两个button变量,分别是加一button和减一button16     TextView mTotal;//创建TextView类型的变量mTotal17     18     @Override19     protected void onCreate(Bundle savedInstanceState) {20         super.onCreate(savedInstanceState);21         setContentView(R.layout.activity_main);22         23         24         //初始化变量的值25         counter = 0;26         27         //关联两个button和TextView变量28         mAddOne = (Button)findViewById(R.id.bAddOne);29         mSubOne = (Button)findViewById(R.id.bSubOne);30         mTotal = (TextView)findViewById(R.id.tvTotal);31         32         //添加按钮单机响应函数33         mAddOne.setOnClickListener(new View.OnClickListener() {34             35             @Override36             public void onClick(View v) {37                 // TODO Auto-generated method stub38                 counter++;39                 mTotal.setText("总数为:" + counter);40             }41         });42         43         mSubOne.setOnClickListener(new View.OnClickListener() {44             45             @Override46             public void onClick(View v) {47                 // TODO Auto-generated method stub48                 counter--;49                 mTotal.setText("总数为:" + counter);50             }51         });52     }53 54 55     @Override56     public boolean onCreateOptionsMenu(Menu menu) {57         // Inflate the menu; this adds items to the action bar if it is present.58         getMenuInflater().inflate(R.menu.main, menu);59         return true;60     }61 62     @Override63     public boolean onOptionsItemSelected(MenuItem item) {64         // Handle action bar item clicks here. The action bar will65         // automatically handle clicks on the Home/Up button, so long66         // as you specify a parent activity in AndroidManifest.xml.67         int id = item.getItemId();68         if (id == R.id.action_settings) {69             return true;70         }71         return super.onOptionsItemSelected(item);72     }73 }

 

简单的添加button只需要修改这三个工程下的文件就可以了。

这里我为了养成自己的习惯,让我写出来的代码更具有易读性。我在定义各个变量的时候是这样的。

  1)遵循定义名有意义,基本代表控件的内容或含义,并且尽量使用英文代表其含义。如:加一我会定义成addone

  2)一个控件的id,name,或者其他函数相关关联的定义会采用稍微不同的定义。如在string里的string name一般为小写字母开头,之后的每个单词首个大写;设置id则在前面添加其标签的缩写字母(如,button标签下的就在string name 前面添加字母b,并将b后第一个字母大写,TextView标签下则添加字母tv,并将tv后第一个字母大写);在其他函数如MainActivity函数中使用相关联的变量时,则在string name前面添加字母m,并将m后第一个字母大写。

  实例:创建一个加一按钮则string name就是addOne,id就是bAddOne,主函数相关联的函数变量就是mAddOne。

  3)注意分段,分行,让整个代码看起来有层次。方便阅读,方便修改。也能让自己写代码的时候心情更好,因为代码不可能是一次性写好写完,总要回头来修改查看,如果没有好的层次感,很难在看自己写的代码的时候有好心情,这不但影响工作和学习,还打击我们对开发的热情。

转载于:https://www.cnblogs.com/codedit/p/3857645.html

你可能感兴趣的文章
codevs3027 线段覆盖 2
查看>>
markdown
查看>>
【leetcode】107-Binary Tree Level Order Traversal II
查看>>
Jquert data方法获取不到数据,显示为undefined。
查看>>
ssm项目中 数据库和资源的备份
查看>>
hdoj5671 BestCoder Round #81 (div.2)
查看>>
HDU5950【矩阵快速幂】
查看>>
在线C++编译器
查看>>
C#中各种serialization的比较
查看>>
P2617 Dynamic Rankings
查看>>
工作学习常识1
查看>>
Linux小知识点
查看>>
VisualVM监控远程主机
查看>>
C#中检查网络是否连通的二种方法
查看>>
离线Tarjan算法-最近公共祖先问题
查看>>
数据结构(四)队列
查看>>
Android Studio导入第三方类库的方法
查看>>
Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
查看>>
Android加速度传感器实现“摇一摇”,带手机振动 .
查看>>
love2d教程7--绘图顺序
查看>>