Android 事件处理
1,采用在Activity中创建一个内部类定义点击事件
主要xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bt1"
android:text="按钮1"/>
</LinearLayout>
主要java代码
package com.example.textapplication;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.Nullable;
public class MainActivity extends Activity {
//定义一个按钮
private Button bt1;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
bt1= (Button) findViewById(R.id.bt1);
//给按钮设置点击事件
bt1.setOnClickListener(new MyListener());
}
//创建一个内部类定义点击事件
private class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) { //重写点击方法
Toast.makeText(getApplicationContext(),"点击了按钮", Toast.LENGTH_SHORT).show();
}
}
}
采用匿名内部类定义点击事件
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity2_main);
//初始化控件
bt1 = (Button) findViewById(R.id.bt2);
//给按钮设置点击事件,创建了一个匿名内部类
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"点击了按钮2", Toast.LENGTH_SHORT).show();
}
});
}
结果
Intent
1,Intent.putExtra(key,value)可以将要传递的数据添加到Intent中。如果想取出Intent对象中的这些值,需要在另一个Activity中调用get(类型例如String)Extra方法,注意需要使用对应类型的方法,参数为键名
2,使用Intent进行数据传递
//创建一个intent对象,从MainActivity跳转到TwoActivity界面
Intent intent= new Intent(MainActibity.thid,TwoActivity.class);
//在Intent中装载一个boolean类型的参数,键为ok,值为true
intent.putExtra(“ok”,true);
//在Intent中装载一个String类型的参数,键位name,值位userName
intent.putExtra(“naame”,username);
//启动这个意图将值传递到第二个界面
startActivity(intent);
第二个界面接受传递过来的数据的关键代码
//先获取所传递的Intent
Intent intent =getIntent();
//获取intent中键位name的String类型的值
String name = intent.getStringExtra(“name”);