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

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;
            }
        }

    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值