zoukankan      html  css  js  c++  java
  • Android菜鸟成长记4button点击事件

    Button

      1.button按钮的创建

        一般来说,在我们新建一个Android项目的时候,会有会默认有一个activity_main.xml的文件

        

    如果你在新建项目的时候,把Create Activity没勾的话(下图是新建项目的时候的一个页面),就需要,新建一个

    新建一个布局的方法

      layout -> 右键点击 -> new - > Android XML File 然后会弹出创建布局文件的窗口 。

      

    好了,布局加载好了,现在进入我们的主题,添加一个按钮。

      首先,点击activity_main.xml文件,我们看到这样的一个界面

      

      那么我们要怎么创建按钮呢,其实很简单,只要把最左边的button拖到你设计的布局里面即可

    这样我们的按钮就创建完,是不是很简单。

    然后我们再看看在窗口的最下方有两个切换卡,左边是 Graphical Layout,右边是 activity_main.xml 

      Graphical Layout 是当前的可视化布局编辑器,在这里你不仅可以预览当前的布局,还可以通过拖拽的方式编辑布局 (既是我们刚刚创建按钮的地方)

        activity_main.xml  则是通过 XML 文件的方式来编辑布局 

     activity_main.xml文件

     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:paddingBottom="@dimen/activity_vertical_margin"
     6     android:paddingLeft="@dimen/activity_horizontal_margin"
     7     android:paddingRight="@dimen/activity_horizontal_margin"
     8     android:paddingTop="@dimen/activity_vertical_margin"
     9     tools:context="com.example.hello.MainActivity" >
    10 
    11     <TextView
    12         android:id="@+id/textView1"
    13         android:layout_width="wrap_content"
    14         android:layout_height="wrap_content"
    15         android:text="@string/hello_world" />
    16 
    17     <Button
    18         android:id="@+id/button1"     这个是你创建的按钮id,很重要的一个东西
    19         android:layout_width="wrap_content"  //这里可以控制按钮的长度
    20         android:layout_height="wrap_content" //这里可以控制按钮的高度
    21         android:layout_alignLeft="@+id/textView1"
    22         android:layout_below="@+id/textView1"
    23         android:layout_marginTop="26dp"
    24         android:text="Button" />   这里可以修改按钮的名字
    25 
    26 </RelativeLayout>

    对于button的介绍的差不多了,下面让我们搞点新意思吧。

      现在我们创建好的按钮,只能看,无论你在模拟器或手机上怎么点击都是没什么反应的,那么怎样才能让他有反应呢。

      相信学过网页的都知道我们差了点什么,没错,就是点击事件。

    Android的点击事件是创建

      首先,我们打开打开项目下的src文件夹的com.example.项目名(系统会默认前缀是com.example开头的)下的MainActivity.java

      

     1 package com.example.hello;
     2 
     3 import android.app.Activity;
     4 import android.app.AlertDialog;
     5 import android.os.Bundle;
     6 import android.view.Menu;
     7 import android.view.MenuItem;
     8 import android.view.View;
     9 import android.view.View.OnClickListener;
    10 import android.widget.Button;
    11 import android.widget.TextView;
    12 import android.widget.Toast;
    13 
    14 
    15 public class MainActivity extends Activity {
    16 
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState) {
    19         super.onCreate(savedInstanceState);
    20         setContentView(R.layout.activity_main);
    21         
    22         //定位textView1这个控件
    23         TextView tv1 = (TextView) this.findViewById(R.id.textView1);
    24         //对控件进行赋值,改变显示的内容
    25         tv1.setText("你好,Android");
    26         
    27         final TextView textview = (TextView)findViewById(R.id.textView2);
    28         //根据id获取按钮的控件
    29         Button btn = (Button) this.findViewById(R.id.button1);
    30         //修改按钮的名字
    31         btn.setText("点我");
    32         //给按钮赋予点击事件
    33        34         btn.setOnClickListener(new OnClickListener() {
    36             @Override
    37             
    38             public void onClick(View v) {
    39                  
    45                 //第一个参数:上下文,指的是activity,所以写的是MainActivity.this
    46                 //第二个参数:设置弹出的信息
    47                 //第三个参数,设置显示的实践
    48                 Toast.makeText(MainActivity.this, "点解要点我", Toast.LENGTH_LONG).show();
    49             }
    50         });
    51     }
    52 
    53 
    54     @Override
    55     public boolean onCreateOptionsMenu(Menu menu) {
    56         // Inflate the menu; this adds items to the action bar if it is present.
    57         getMenuInflater().inflate(R.menu.main, menu);
    58         return true;
    59     }
    60 
    61     @Override
    62     public boolean onOptionsItemSelected(MenuItem item) {
    63         // Handle action bar item clicks here. The action bar will
    64         // automatically handle clicks on the Home/Up button, so long
    65         // as you specify a parent activity in AndroidManifest.xml.
    66         int id = item.getItemId();
    67         if (id == R.id.action_settings) {
    68             return true;
    69         }
    70         return super.onOptionsItemSelected(item);
    71     }
    72 }

    上面的就是一个简单的点击事件,首先我们要获取按钮的控件,findViewById(R.id.button1)就是根据button的id来获取他,就是上面说到了buttoon的id了。

    然后我们看一下运行结果

      

    这就是一个简单的按钮点击事件了

      或许大家对于Toast不理解,现在简单的介绍一下

      Toast Android 系统提供的一种非常好的提醒方式, 在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间 


    但是对于上面的写法大家是不是觉得好长好难看,那么下面我们来改良一下代码,然我们看的更舒服

    首先我们新建一个类btnClickListen来继承Android的OnClickListener借口

     1 package com.example.hello;
     2 
     3 import android.content.Context;
     4 import android.view.View;
     5 import android.view.View.OnClickListener;
     6 import android.widget.Toast;
     7 
     8 public class btnClickListen implements OnClickListener {
     9 
    10     private Context context;
    11     
    12     public btnClickListen (Context c) {
    13         this.context = c;
    14     }
    15     
    16 
    17     @Override
    18     public void onClick(View v) {
    19         Toast t = Toast.makeText(context, "点解要点我", Toast.LENGTH_LONG);
    20         t.show();
    21         
    22     }
    23 
    24 }
     1 package com.example.hello;
     2 
     3 import android.app.Activity;
     4 import android.app.AlertDialog;
     5 import android.os.Bundle;
     6 import android.view.Menu;
     7 import android.view.MenuItem;
     8 import android.view.View;
     9 import android.view.View.OnClickListener;
    10 import android.widget.Button;
    11 import android.widget.TextView;
    12 import android.widget.Toast;
    13 
    14 
    15 public class MainActivity extends Activity {
    16 
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState) {
    19         super.onCreate(savedInstanceState);
    20         setContentView(R.layout.activity_main);
    21         
    22         //定位textView1这个控件
    23         TextView tv1 = (TextView) this.findViewById(R.id.textView1);
    24         //对控件进行赋值,改变显示的内容
    25         tv1.setText("你好,Android");
    26         
    27         final TextView textview = (TextView)findViewById(R.id.textView2);
    28         //根据id获取按钮的控件
    29         Button btn = (Button) this.findViewById(R.id.button1);
    30         //修改按钮的名字
    31         btn.setText("点我");
    32         //给按钮赋予点击事件
    33         btn.setOnClickListener( new btnClickListen(this));
    34        
    35     }
    36 
    37 
    38     @Override
    39     public boolean onCreateOptionsMenu(Menu menu) {
    40         // Inflate the menu; this adds items to the action bar if it is present.
    41         getMenuInflater().inflate(R.menu.main, menu);
    42         return true;
    43     }
    44 
    45     @Override
    46     public boolean onOptionsItemSelected(MenuItem item) {
    47         // Handle action bar item clicks here. The action bar will
    48         // automatically handle clicks on the Home/Up button, so long
    49         // as you specify a parent activity in AndroidManifest.xml.
    50         int id = item.getItemId();
    51         if (id == R.id.action_settings) {
    52             return true;
    53         }
    54         return super.onOptionsItemSelected(item);
    55     }
    56 }

    现在是不是好看很多了。

    其实第二种两种方法是一样的,第一种其实就是我之前博客说的匿名内部类的一种写法。

  • 相关阅读:
    进入社会,我们要做哪些准备?
    2天玩转单反相机(第二讲)
    Google广告优化与工具
    Ext JS 4:模型剖析
    iphone开发教程(1) iOS大纲
    iPhone objectivec字符串类NSString的使用
    Ext JS 4倒计时:图形和图表
    Ext JS 4倒计时:开发者预览版
    WOSA介绍
    “苹果皮”与知识产权
  • 原文地址:https://www.cnblogs.com/lsyverygood/p/6073516.html
Copyright © 2011-2022 走看看