Intent 的显示传递:
package com.example.test;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class IntentTest extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intent_test);
findViewById(R.id.intent).setOnClickListener(this);
findViewById(R.id.ysintent).setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.intent:
Intent intent = new Intent(this,OpenedByIntent.class);
startActivity(intent);
break;
case R.id.ysintent:
Intent intent1 = new Intent();
intent1.setAction("youCanNameItSelfly");
startActivity(intent1);
break;
}
}
}
这样就可以使用 Intent 传到另一个界面了
定义一个action 的名字,名字可以随便定 , 把 category 要改成 default 然后就行了
使用 Intent来数据回传
在原来的 switch 里面添加一个Button 然后添加点击事件
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.intent:
Intent intent = new Intent(this,OpenedByIntent.class);
startActivity(intent);
break;
case R.id.ysintent:
Intent intent1 = new Intent();
intent1.setAction("youCanNameItSelfly");
startActivity(intent1);
break;
case R.id.sjhcintent:
Intent intent2 = new Intent(this,sendDataByIntent.class);
startActivityForResult(intent2,1); // 后面要加上请求码
}
}
sendDataByIntent 类中存放数据并返回
public class sendDataByIntent extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_data_by_intent);
findViewById(R.id.sendDataBack).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.putExtra("name","lasdkfjlksjdf");
Bundle bundle = new Bundle();
bundle.putString("passwd","lasdkfj");
intent.putExtras(bundle);
setResult(2,intent);//这个设置返回码
finish();//这个是结束这个Activity
}
});
}
}
然后在 原来的界面调用 监听函数就行了
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == 2){
String name = data.getStringExtra("name");
Bundle bundle = data.getExtras();
String passwd = bundle.getString("passwd");
Toast.makeText(IntentTest.this, name +" "+passwd,Toast.LENGTH_SHORT).show();
}
}