事件处理(两种方式):
1、回调方式
例子:
源码:
EventActivity.java
public void changeText(View view)
{
TextView tv= findViewById(R.id.text_view);
tv.setText(R.string.newStr);
this.setTitle("这是一个新的标题");
}
EventActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="这是一段文字"
android:gravity="center"
android:layout_marginTop="50dp"
></TextView>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击我"
android:layout_gravity="center"
android:layout_marginTop="100dp"
android:onClick="changeText"
>
</Button>
</LinearLayout>
主要通过onClick这个事件实现交互
2、基于监听接口
EventActivity.java
public class EventActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_event);
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new myOnclickListener());
}
public class myOnclickListener implements View.OnClickListener
{
@Override
public void onClick(View v) {
TextView tv= findViewById(R.id.text_view);
tv.setText(R.string.newStr);
EventActivity.this.setTitle("这是一个新的标题");
}
}
}
另一种浓缩型的写法:
public class EventActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_event);
Button btn = findViewById(R.id.btn);
//btn.setOnClickListener(new myOnclickListener());
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TextView tv= findViewById(R.id.text_view);
tv.setText(R.string.newStr);
EventActivity.this.setTitle("这是一个新的标题");
}
});
}