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这些interface,bird,insect可以implements比如fly这些interface
extends是继承父类,只要那个类不是声明为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。