您的位置:首页 > 产品设计 > UI/UE

Android——UI事件的处理机制(基于监听器)

2016-03-27 21:48 771 查看

1.普通内部类(常用)

xml

<Button
android:hint="reset"
android:layout_columnWeight="1"
android:id="@+id/reset"/>


java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);
//添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset);

//第一种 设置监听器的实现类的实例
bt_reset.setOnClickListener(new ResetButtonClickListen());

}
//1.用内部类实现监听器的接口
private class ResetButtonClickListen implements View.OnClickListener
{
public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString();

//在内部类里调用外部类的实例:外部类的类名.this
Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show();
}
}
}


2.匿名内部类

java

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);

Button bt_reset = (Button)findViewById(R.id.reset);

//第二种 匿名内部类
bt_reset.setOnClickListener(new View.OnClickListener(){

public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString();

//在内部类里调用外部类的实例:外部类的类名.this
Toast.makeText(MainActivity.this,str+"click",Toast.LENGTH_LONG).show();
}
});
}


3.外部类

java

public class MainActivity extends AppCompatActivity {
//public class MainActivity extends AppCompatActivity implements View.OnClickListener {

//bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);

//添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset);

//第三种 外部类
//bt_reset.setOnClickListener(new WaibuListener());

}
}


java2

package com.example.chenshuai.test322;

import android.view.View;
import android.widget.Button;

/**
* Created by chenshuai on 2016/3/26.
*/
public class WaibuListener implements View.OnClickListener {
public void onClick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString();

}
}


4.直接绑到标签上

xml

<Button
android:hint="send"
android:layout_columnWeight="1"
android:onClick="onclick"/>


java

public class MainActivity extends AppCompatActivity {
//public class MainActivity extends AppCompatActivity implements View.OnClickListener {

//bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);

//添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset);

//传递的View参数 是触发这个事件视图实例(在这里是Button)
public void onclick(View v)
{
Button bt = (Button)v;
String str = bt.getText().toString();

Toast.makeText(this,str+"Button click",Toast.LENGTH_LONG).show();
}
}


5.Avtivity直接实现

java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

bt_reset.setOnClickListener(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridexlayout);

//添加监听器
//监听器 本身是一个接口,需要写实现类
Button bt_reset = (Button)findViewById(R.id.reset);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: