標籤:android style blog http color io os ar sp
Button、ImageButton事件監聽(setOnClickListener)
方法一:通過匿名內部類實現
代碼如下:
package com.note.demo2;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends ActionBarActivity { //聲明登入按鈕loginButton private Button loginButton; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化按鈕,把xml中的按鈕賦值給聲明的變數 ,通過R的ID尋找。 //findViewById返回的是一個view對象,要轉換成button對象,設定一個button監聽對象。 loginButton=(Button) findViewById(R.id.button1); // 1、監聽事件通過匿名內部類實現 loginButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { //在當前onClick方法中監聽點擊button動作 show("通過內部類實現,你點擊我了哦"); } });
} public void show(String str){ Toast toasts=Toast.makeText(this,str , Toast.LENGTH_SHORT); toasts.show(); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
結果:
方法二:通過獨立類實現
package com.note.demo2;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity { //聲明登入按鈕loginButton private Button loginButton; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化按鈕,把xml中的按鈕賦值給聲明的變數 ,通過R的ID尋找。 //findViewById返回的是一個view對象,要轉換成button對象,設定一個button監聽對象。 loginButton=(Button) findViewById(R.id.button1); // 2、監聽事件通過獨立類實現 loginButton.setOnClickListener(listener); } OnClickListener listener=new OnClickListener() { public void onClick(View v) { show("通過獨立類實現,你點擊我了哦"); } }; public void show(String str){ Toast toasts=Toast.makeText(this, str, Toast.LENGTH_SHORT); toasts.setGravity(Gravity.TOP, 0, 220); toasts.show(); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
結果如下:
方法三:通過介面的方式實現事件監聽
package com.note.demo2;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Gravity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnClickListener { //聲明登入按鈕loginButton private Button loginButton; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化按鈕,把xml中的按鈕賦值給聲明的變數 ,通過R的ID尋找。 //findViewById返回的是一個view對象,要轉換成button對象,設定一個button監聽對象。 loginButton=(Button) findViewById(R.id.button1); //通過實現介面的方法實現監聽事件 loginButton.setOnClickListener(this); } public void onClick(View v) { show("通過實現介面的方法實現"); } public void show(String str){ Toast toasts=Toast.makeText(this, str, Toast.LENGTH_SHORT); toasts.setGravity(Gravity.TOP, 0, 220); toasts.show(); } public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
結果如下:
Android事件監聽(二)——點擊滑鼠事件