標籤:android style http ar color sp java strong 檔案
android利用監聽器來實現事件處理,有多種方法:
//以下下import 包部分省略,複製時請自行匯入
Activity本身作為事件監聽器
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.testevent.MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:text="Button" /></RelativeLayout>
MainActivity.java
public class MainActivity extends Activity implements OnClickListener{TextView textView;Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.textView1);button = (Button) findViewById(R.id.button1);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {textView.setText("我被點擊了");}}
2.匿名內部類作為事件監聽器
xml檔案同上
MainActivity.java
public class MainActivity extends Activity {Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.button1);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {TextView textView = (TextView) findViewById(R.id.textView1);textView.setText("我被點擊了");}});}}
3.定義外部類作為事件監聽器
xml檔案同上
MainActivity.java
public class MainActivity extends Activity {TextView textView;Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView)findViewById(R.id.textView1);button = (Button) findViewById(R.id.button1);button.setOnLongClickListener(new TextChangeListener(this, textView));}}
TextChangeListener.java
public class TextChangeListener implements OnLongClickListener {TextView textView;public TextChangeListener(Activity ac, TextView textView) {this.textView = textView;}@Overridepublic boolean onLongClick(View v) {textView.setText("我被長時間點擊了");return true;}}
4.將事件監聽器直接綁定到標籤
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.testevent.MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:onClick="buttonClickHandle" android:text="Button" /></RelativeLayout>
MainActivity.java
public class MainActivity extends Activity {TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}//此處必須是publicpublic void buttonClickHandle(View v){textView = (TextView)findViewById(R.id.textView1);textView.setText("我被點擊了");}}
android基於監聽的事件處理