zoukankan      html  css  js  c++  java
  • View(视图)

    一.事件

       1.概念

        1>事件源

            事件发起者,也就是视图组件。

        2>事件

            事件源产生的动作,并包含相关信息。

        3>监听器

           是一些关于事件处理的接口,负责拦截和处理事件信息,要实现相关的接口,把处理事件的业务逻辑写在回调方法里,要把监听器的实现类的实例和事件源进行关联。

        4>回调方法

            负责处理事件,由监听器监听到事件后自动调用。

       2.实现方法

        1>自动关联方式

        2>匿名内部类

        3>普通内部类

        4>普通外部类

        5>Activity实现类

      1 package com.hanqi.testapp2;
      2 
      3 import android.support.v7.app.AppCompatActivity;
      4 import android.os.Bundle;
      5 import android.view.View;
      6 import android.widget.Button;
      7 import android.widget.TextView;
      8 
      9 public class MainActivity extends AppCompatActivity implements  View.OnClickListener {
     10 
     11     TextView  tv_1;
     12 
     13     Button bt9;
     14     Button bt4;
     15     Button bt5;
     16     Button bt6;
     17     Button bt_add;
     18     Button bt_jian;
     19     Button btc;
     20     Button bt_hun;
     21     Button bt_bai;
     22     Button bt_chu;
     23     Button bt_cheng;
     24     Button bt1;
     25     Button bt2;
     26     Button bt3;
     27     Button bt0;
     28     Button bt_dian;
     29     Button bt_deng;
     30 
     31     @Override
     32     public void onClick(View v) {
     33 
     34         //访问内部组件
     35     }
     36 
     37     @Override
     38     protected void onCreate(Bundle savedInstanceState) {
     39         super.onCreate(savedInstanceState);
     40         setContentView(R.layout.activity_main);
     41 
     42         tv_1=(TextView)findViewById(R.id.tv_1);
     43 
     44         //事件源
     45         bt9=(Button)findViewById(R.id.bt9);
     46         bt4=(Button)findViewById(R.id.bt4);
     47         bt5=(Button)findViewById(R.id.bt5);
     48         bt6=(Button)findViewById(R.id.bt6);
     49         bt_add=(Button)findViewById(R.id.bt_add);
     50         bt_jian=(Button)findViewById(R.id.bt_jian);
     51         btc=(Button)findViewById(R.id.btc);
     52         bt_hun=(Button)findViewById(R.id.bt_hun);
     53         bt_bai=(Button)findViewById(R.id.bt_bai);
     54         bt_chu=(Button)findViewById(R.id.bt_chu);
     55         bt_cheng=(Button)findViewById(R.id.bt_cheng);
     56         bt1=(Button)findViewById(R.id.bt1);
     57         bt2=(Button)findViewById(R.id.bt2);
     58         bt3=(Button)findViewById(R.id.bt3);
     59         bt0=(Button)findViewById(R.id.bt0);
     60         bt_dian=(Button)findViewById(R.id.bt_dian);
     61         bt_deng=(Button)findViewById(R.id.bt_deng);
     62 
     63 
     64 
     65         //给bt9按钮添加事件监听器 实现方式:1.匿名内部类 不可以复用
     66         bt9.setOnClickListener(new View.OnClickListener() {
     67             @Override
     68             public void onClick(View v) {
     69 
     70                 //处理事件的业务逻辑
     71                 tv_1.setText("9");
     72 
     73             }
     74         });
     75 
     76         //外部的实现类
     77         MyOnClick myOnClick=new MyOnClick();
     78 
     79         bt4.setOnClickListener(myOnClick);
     80 
     81         //设置自身实例为关联监听器
     82         bt4.setOnClickListener(this);
     83 
     84 
     85 
     86         //2.普通内部类  可以复用
     87         bt_OnClickListener bt_1=new bt_OnClickListener();
     88 
     89         btc.setOnClickListener(bt_1);
     90         bt4.setOnClickListener(bt_1);
     91         bt5.setOnClickListener(bt_1);
     92         bt6.setOnClickListener(bt_1);
     93         bt_jian.setOnClickListener(bt_1);
     94         btc.setOnClickListener(bt_1);
     95         bt_hun.setOnClickListener(bt_1);
     96         bt_bai.setOnClickListener(bt_1);
     97         bt_chu.setOnClickListener(bt_1);
     98         bt_cheng.setOnClickListener(bt_1);
     99         bt1.setOnClickListener(bt_1);
    100         bt2.setOnClickListener(bt_1);
    101         bt3.setOnClickListener(bt_1);
    102         bt0.setOnClickListener(bt_1);
    103         bt_dian.setOnClickListener(bt_1);
    104         bt_deng.setOnClickListener(bt_1);
    105         bt_add.setOnClickListener(bt_1);
    106     }
    107 
    108     //内部类实现OnClickListener接口
    109     class  bt_OnClickListener implements  View.OnClickListener
    110     {
    111         @Override
    112         //v 事件源
    113         public void onClick(View v) {
    114 
    115             //转成按钮
    116             Button bt=(Button)v;
    117 
    118             //取得按钮上的文字
    119             String str=bt.getText().toString();
    120 
    121             //处理事件的业务逻辑 设置显示文字
    122             tv_1.setText(str);
    123         }
    124 
    125     }
    126 
    127     //3.关联方式
    128     public  void bt7_OnClick(View v)
    129     {
    130         tv_1.setText("7");
    131     }
    132 
    133     public  void bt8_OnClick(View v)
    134     {
    135         tv_1.setText("8");
    136     }
    137 
    138 
    139     //重用
    140     public void bt_OnClick(View v)
    141     {
    142         //设置显示内容
    143 
    144         //转成按钮
    145         Button bt=(Button)v;
    146 
    147         //取得按钮上的文字
    148         String str=bt.getText().toString();
    149 
    150         //处理事件的业务逻辑 设置显示文字
    151         tv_1.setText(str);
    152 
    153 
    154     }
    155 
    156 
    157 
    158 }
    实现方法

    二.按钮

       1.单选按钮

         1>格式:

    <RadioGroup>  //按钮组
    <RadioButton/>//单选按钮
    <RadioButton/>
    </RadioGroup>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.hanqi.testapp2.TestActivity1"
    11     android:orientation="vertical">
    12 
    13     <RadioGroup
    14         android:layout_width="match_parent"
    15         android:layout_height="wrap_content">
    16         <RadioButton
    17             android:layout_width="wrap_content"
    18             android:layout_height="wrap_content"
    19             android:text="男"/>
    20 
    21         <RadioButton
    22             android:layout_width="wrap_content"
    23             android:layout_height="wrap_content"
    24             android:text="女"/>
    25     </RadioGroup>
    26 </LinearLayout>
    单选按钮

       2.图片按钮

         1>关键词:ImageButton

         2>src 图片按钮

         3>按钮上不能添加文字

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.hanqi.testapp2.TestActivity1"
    11     android:orientation="vertical">
    12 
    13     <LinearLayout
    14         android:layout_width="match_parent"
    15         android:layout_height="wrap_content">
    16     <ImageButton
    17         android:layout_width="wrap_content"
    18         android:layout_height="wrap_content"
    19         android:src="@drawable/anniu04"/>
    20 
    21     <ImageButton
    22         android:layout_width="wrap_content"
    23         android:layout_height="wrap_content"
    24         android:src="@drawable/anniu05"/>
    25 
    26     <Button
    27         android:layout_width="wrap_content"
    28         android:layout_height="wrap_content"
    29         android:background="@drawable/anniu04"
    30         android:text="普通按钮"/>
    31     </LinearLayout>
    32   </LinearLayout>
    图片按钮

  • 相关阅读:
    Kubernetes笔记 (2)
    Kubernetes笔记(3)
    Kubernetes笔记 (1)
    《深入浅出React和Redux》(4)
    【从0安装】xshell和xftp
    【从0安装】Sourcetree
    postman测试需要登录的接口
    vue自定义滚动条组件-vuebar组件
    charles 抓包http 和 https
    pycharm 面板颜色调整和中文汉化
  • 原文地址:https://www.cnblogs.com/arxk/p/5458854.html
Copyright © 2011-2022 走看看