3.Textview和Button的使用:点击按钮,返回点击次数

1.目标页面

这里写图片描述

2.UI布局设置

  在该工程文件的activity_main.xml布局文件中设置TextView控件和Button控件。
  1.设置文件的布局:线性布局。可以直接在直观的页面中单击鼠标右键:Change Layout——>选择线性布局(垂直)
  2.TextView控件,显示点击的次数
<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="点击的次数"
        android:textSize="24dp"/>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  3.设置Button按钮控件:鼠标的点击
<Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="来点我啊"
        android:textSize="24dp" />
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  到这里,我们的静态页面布局就设置好了,接下来就是为按钮添加动作事件,TextView文本显示相应的内容。

3.事件响应设置

 在该工程下的src文件夹中找到MainActivity.java打开,可以看到系统为我们自动生成的代码文件。在这一部分我们要实现的就是点击按钮,文本显示相应的内容。
 因此有两个直观的变量是我们要设置的:TextView和Button类型的变量,为了以后控制和观看方便,这里的变量即属性。
 除了这两个属性之外,还有一个次数,是通过点击事件改变的一个参数,应此也需要提前定义。
private TextView tv;
private Button bn;
int number;
 
 
  • 1
  • 2
  • 3
 然后呢,就是在onCreat()方法里添加我们要执行的代码。
        //得到TextView和Button控件对象
        tv= (TextView)findViewById(R.id.textView1);
        bn=(Button)findViewById(R.id.button1);

        bn.setOnClickListener(new OnClickListener()
        {

            //当点击一次鼠标,number就加一次
            @Override
            public void onClick(View arg0) 
            {
                number++;
                tv.setText("点击了"+number+"次~");
            }
        });
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  这样,我们这个的程序就可以运行了。

4.运行效果

这里写图片描述

注意

  1. 在xml文件中的控件要有id,这样才能在java文件中的得到他们并加以操控;
  2. java文件中得到的id是通过findViewById(R.id.IdName)这个方法来实现的,同时也需要把得到的这个对象强制类型转换;
  3. 通过这个方法得到的IdName常常会报错,这个时候需要自己手动在R文件中添加id:鼠标移动到报错的行前面或者该位置,会智能弹出相应的操作,选择Creat field“*”in type ‘id’。ADT会自动到R文件添加对应的id;
  4. 通过R文件的id,将静态布局界面xml的控件id和写逻辑代码的java要操控的控件id联系起来。

友情帮助

  1. 遇到“Unfortunately,xxx has stopped”这种情况的时候,可以查看catLog来找到相应的错误,具体参考这:Android之Unfortunately,xxx has stopped错误的修改方法。 
    2.该项目的代码的下载页面:TextView和Button的结合使用:点击按钮,返回点击次数
这段代码的逻辑看起来已经比较清晰了,不过可以进行一些优化和修改: 1. 避免重复的findViewById操作 在onCreate方法中,tvPhone和tvPhon1都进行了findViewById操作,这里可以避免重复代码。可以将其中一个findViewById操作删除,只保留一个即可。 2. 使用常量或字符串资源 在代码中直接使用字符串 "0574-86891367" 和 "https://www.nbpt.edu.cn",不便于管理和维护。可以将这些字符串定义为常量或字符串资源,例如: ``` private static final String PHONE_NUMBER = "0574-86891367"; private static final String WEBSITE_URL = "https://www.nbpt.edu.cn"; ``` 或者在strings.xml文件中添加如下定义: ``` <string name="phone_number">0574-86891367</string> <string name="website_url">https://www.nbpt.edu.cn</string> ``` 然后在代码中使用getString方法获取字符串资源: ``` String phoneNumber = getString(R.string.phone_number); String websiteUrl = getString(R.string.website_url); ``` 3. 对TextView添加点击事件 在代码中对TextView添加了点击事件,可以使用android:clickable="true"属性来简化代码,例如: ``` <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0574-86891367" android:textColor="@color/colorAccent" android:textStyle="bold" android:textSize="18sp" android:clickable="true" android:onClick="onTextViewClick" /> ``` 然后在Activity中添加一个onTextViewClick方法: ``` public void onTextViewClick(View view) { int id = view.getId(); switch (id) { case R.id.textView6: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data = Uri.parse("tel://" + getString(R.string.phone_number)); intent.setData(data); startActivity(intent); break; case R.id.textView12: Uri data1 = Uri.parse(getString(R.string.website_url)); Intent intent1 = new Intent(Intent.ACTION_VIEW, data1); startActivity(intent1); break; } } ``` 这样就可以避免在Activity中重复编写onClick方法了。 4. 添加注释 在代码中添加注释可以方便自己和其他人理解代码的逻辑和作用,建议添加一些必要的注释。例如: ``` // 设置标题栏名称 setTitle("联系我们"); // 对TextView添加下划线效果 tvPhone.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); tvPhon1.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); // 对TextView添加点击事件 tvPhone.setOnClickListener(this); tvPhon1.setOnClickListener(this); // 处理TextView点击事件 public void onTextViewClick(View view) { // ... } ``` 以上是一些可能的优化和修改建议,需要根据实际情况进行具体操作。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值