您的位置:首页 > 移动开发 > Android开发

android绑定点击事件的四种方法

2016-07-27 21:41 465 查看
1.内部类作为事件监听器

2.匿名内部类作为事件监听器(没有名字的内部类,只能使用一次)

3.activity本身作为事件监听器

4.xml文件中控件下android:onClick=”onClick”(onClick是方法名)

下面代码:

package com.example.button;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

private Button mybutton1,mybutton2,mybutton3,mybutton4;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mybutton1 = (Button) findViewById(R.id.mybutton1);
mybutton1.setText("1");
mybutton1.setOnClickListener(new MybuttonOnClickListener());

mybutton2 = (Button) findViewById(R.id.mybutton2);
mybutton2.setText("2");
mybutton2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "这是匿名内部类作为事件监听器类", Toast.LENGTH_LONG).show();
}
});

mybutton3 = (Button) findViewById(R.id.mybutton3);
mybutton3.setText("3");
mybutton3.setOnClickListener(this);

mybutton4 = (Button) findViewById(R.id.mybutton4);
mybutton4.setText("4");

}

class MybuttonOnClickListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "这是内部类作为监听器", Toast.LENGTH_LONG).show();
}
}

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "Activity本身作为事件监听器", Toast.LENGTH_LONG).show();
}
public void onClickck(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "这是在xml文件中``
示onclick属性,属性后是方法名", Toast.LENGTH_LONG).show();
}
}


备注:关于绑定点击事件的写法(并不需要一个控件写一个click,可以用switc case)

下面代码:(直接附上Activity文件)

package com.example.sqlite;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SQLiteActivity extends Activity {
/** Called when the activity is first created. */
private Button createDatabaseButton = null;
private Button updateDatabaseButton = null;
private Button insertButton = null;
private Button updateButton = null;
private Button selectButton = null;
private Button deleteButton = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 根据控件id获得相应的控件对象
createDatabaseButton = (Button) findViewById(R.id.myButton_1);
updateDatabaseButton = (Button) findViewById(R.id.myButton_2);
insertButton = (Button) findViewById(R.id.myButton_3);
updateButton = (Button) findViewById(R.id.myButton_4);
selectButton = (Button) findViewById(R.id.myButton_5);
deleteButton = (Button) findViewById(R.id.myButton_6);
// 为按钮设置监听器
createDatabaseButton.setOnClickListener(new OnclickListener());
createDatabaseButton.setText("createdb");
updateDatabaseButton.setOnClickListener(new OnclickListener());
updateDatabaseButton.setText("updatadb");
insertButton.setOnClickListener(new OnclickListener());
insertButton.setText("insert");
updateButton.setOnClickListener(new OnclickListener());
updateButton.setText("updata");
selectButton.setOnClickListener(new OnclickListener());
selectButton.setText("select");
deleteButton.setOnClickListener(new OnclickListener());
deleteButton.setText("delete");
}

//点击事件
class OnclickListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
DatabaseHelper dbHelper = null;
SQLiteDatabase sqliteDatabase = null;
ContentValues values = new ContentValues();
Cursor cursor = null;

switch (v.getId()) {
case R.id.myButton_1:
// 创建了一个DatabaseHelper对象,只执行这句话是不会创建或打开连接的
dbHelper = new DatabaseHelper(SQLiteActivity.this,"mydata.db",2);
// 只有调用了DatabaseHelper的getWritableDatabase()方法或者getReadableDatabase()方法之后,才会创建或打开一个连接
sqliteDatabase = dbHelper.getReadableDatabase();
break;

case R.id.myButton_2:
dbHelper = new DatabaseHelper(SQLiteActivity.this,"mydata.db",2);
// 得到一个只读的SQLiteDatabase对象
sqliteDatabase = dbHelper.getReadableDatabase();
break;

case R.id.myButton_3:
// 创建ContentValues对象
values = new ContentValues();
// 向该对象中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据库当中的数据类型一致
values.put("id", 1);
values.put("name", "yangyz");
// 创建DatabaseHelper对象
dbHelper = new DatabaseHelper(SQLiteActivity.this,"mydata.db", 2);
// 得到一个可写的SQLiteDatabase对象
sqliteDatabase = dbHelper.getWritableDatabase();
// 调用insert方法,就可以将数据插入到数据库当中
// 第一个参数:表名称
// 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值
// 第三个参数:ContentValues对象
sqliteDatabase.insert("user", null, values);
break;

case R.id.myButton_4:
// 创建一个DatabaseHelper对象
dbHelper = new DatabaseHelper(SQLiteActivity.this,"mydata.db", 2);
// 得到一个可写的SQLiteDatabase对象
sqliteDatabase = dbHelper.getWritableDatabase();
// 创建一个ContentValues对象
values = new ContentValues();
values.put("name", "zhangsan");
// 调用update方法
// 第一个参数String:表名
// 第二个参数ContentValues:ContentValues对象
// 第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符
// 第四个参数String[]:占位符的值
sqliteDatabase.update("user", values, "id=?", new String[] { "1" });
System.out.println("-----------update------------");
break;

case R.id.myButton_5:
String id = null;
String name = null;
//创建DatabaseHelper对象
dbHelper = new DatabaseHelper(SQLiteActivity.this,
"mydata.db", 2);
// 得到一个只读的SQLiteDatabase对象
sqliteDatabase = dbHelper.getReadableDatabase();
// 调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象
// 第一个参数String:表名
// 第二个参数String[]:要查询的列名
// 第三个参数String:查询条件
// 第四个参数String[]:查询条件的参数
// 第五个参数String:对查询的结果进行分组
// 第六个参数String:对分组的结果进行限制
// 第七个参数String:对查询的结果进行排序
cursor = sqliteDatabase.query("user", new String[] { "id",
"name" }, "id=?", new String[] { "1" }, null, null, null);
// 将光标移动到下一行,从而判断该结果集是否还有下一条数据,如果有则返回true,没有则返回false
while (cursor.moveToNext()) {
id = cursor.getString(cursor.getColumnIndex("id"));
name = cursor.getString(cursor.getColumnIndex("name"));
}
System.out.println("-------------select------------");
System.out.println("id: "+id);
System.out.println("name: "+name);
break;

case R.id.myButton_6:
//创建DatabaseHelper对象
dbHelper = new DatabaseHelper(SQLiteActivity.this,"mydata.db",2);
//获得可写的SQLiteDatabase对象
sqliteDatabase = dbHelper.getWritableDatabase();
//调用SQLiteDatabase对象的delete方法进行删除操作
//第一个参数String:表名
//第二个参数String:条件语句
//第三个参数String[]:条件值
sqliteDatabase.delete("user", "id=?", new String[]{"1"});
System.out.println("----------delete----------");
break;
default:
break;
}
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  控件 android