android绑定点击事件的四种方法
16lz
2021-01-26
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 ueventd 本地native部分源码分析
- Android中关于数据库SQLite的insert插入操作的理解
- Android(安卓)中文 API (17) —— TextSwitcher
- Android优化之内存优化
- Android动画-概述
- Retrofit的详解及使用
- Android数据库开源框架GreenDao分析
- HttpClient and HttpURLConnection——Android(一)
- Android中调用Paint的measureText()方法取得字符串显示的宽度值