Androidバインドクリックイベントの4つの方法


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

    }
}