欢迎使用CSDN-markdown编辑器

来源:互联网 发布:mac相册看图片不方便 编辑:程序博客网 时间:2024/05/16 05:50

06-View初步 重看 运行步骤 监听器试用流程

为控件绑定监听器:
1、获取代表控件的对象
2、定义一个类,实现监听器接口
3、生成监听器对象
4、为控件绑定监听器对 象

sion="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"android:orientation="vertical" >//horizontal 水平布局//vertical  垂直布局    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="#dd9922"        android:text="0" />    <Button        android:id="@+id/button"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="Button" /></LinearLayout>package com.example.s01e06_view;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {    private TextView textView;    private Button button;    int count = 0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView) findViewById(R.id.textView);        button = (Button) findViewById(R.id.button);        textView.setText("Hello ShaSha");        ButtonListener buttonListener=new ButtonListener();        button.setOnClickListener(buttonListener);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    //监听器类    class ButtonListener implements  OnClickListener {        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            count++;            textView.setText(count+"");        }    }}点击时触发监听器  按钮被点击会去执行ButtonListener的onClick方法dp与像素无关的  高宽常用 sp  字体常用   

点击时触发监听器 按钮被点击会去执行ButtonListener的onClick方法

dp与像素无关的 高宽常用
sp 字体常用 更好的适应各种屏幕

implements一般是实现接口。extends 是继承类。接口一般是只有方法声明没有定义的,那么java特别指出实现接口是有道理的,因为继承就有感觉是父类已经实现了方法,而接口恰恰是没有实现自己的方法,仅仅有声明,也就是一个方法头没有方法体。因此你可以理解成接口是子类实现其方法声明而不是继承其方法。但是一般类的方法可以有方法体,那么叫继承比较合理。引入包可以使用里面非接口的一切实现的类。那么是不是实现接口,这个你自己决定,如果想用到那么你不是实现,是不能调用这个接口的,因为接口就是个规范,是个没方法体的方法声明集合。我来举个例子吧:接口可以比作协议,比如我说 一个协议是“杀人”那么这个接口你可以用 砍刀去实现,至于怎么杀砍刀可以去实现,当然你也可以用抢来实现杀人接口,但是你不能用杀人接口去杀人,因为杀人接口只不过是个功能说明,是个协议,具体怎么干,还要看他的实现类。那么一个包里面如果有接口,你可以不实现。这个不影响你使用其他类。extends可以理解为全盘继承了父类的功能implements可以理解为为这个类附加一些额外的功能举个例子,Animal是一个父类,cat,dog,bird,insect都extends了Animal,但是cat,dog,bird还可以implements比如run,shout这些interfacebirdinsect可以implements比如fly这些interfaceextends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,extends只能继承一个类,implements可以实现多个接口比如 class A extends B implements C,D,E interface定义一些方法,并没有实现,需要implements来实现才可用extend可以继承一个接口,但仍是一个接口,也需要implements之后才可用对于class而言,extends用于(单)继承一个类(class),而implements用于实现一个接口(interface)。interface的引入是为了部分地提供多继承的功能。在interface中只需声明方法头,而将方法体留给实现的class来做。这些实现的class的实例完全可以当作interface的实例来对待。在interface之间也可以声明为extends(多继承)的关系。注意一个interface可以extends多个其他interface
0 0
原创粉丝点击