今日学习了页面跳转使用Intent进行传值。使用Intent的putExtra()即可传值,使用getStringExtra()或getIntExtra()等接受,跟web类似。
但是如果使用startActivity不会进行数据回传,要使用startActivityForResult(intent,100)函数第一个参数不用说是Intent,
第二个是requestCode用于区分是哪个页面传回来的。还要重写onActivityResult函数。
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("( ゜- ゜)つロ 乾杯~").setIcon(R.mipmap.ic_launcher). setMessage("你刚才点击了第"+resultCode+"个按钮").setCancelable(true); AlertDialog ad=builder.create(); ad.show(); }
public void onClick1(View view) { Button button1=findViewById(R.id.button1); Intent intent=new Intent(); intent.putExtra("name",(String)lists.get(0).get("name")); intent.putExtra("content",(String)lists.get(0).get("content")); intent.putExtra("imageViews",(int)lists.get(0).get("imageViews")); intent.putExtra("flag",1); intent.setClass(this,MyActivity.class); startActivityForResult(intent,1); }
Intent intent=getIntent(); String name=intent.getStringExtra("name"); String content=intent.getStringExtra("content"); int imageViews=intent.getIntExtra("imageViews",R.drawable.aila); TextView textview1=findViewById(R.id.text1); TextView textView2=findViewById(R.id.text2); ImageView imageview=findViewById(R.id.image1); int flag=intent.getIntExtra("flag",0); textview1.setText(name); textView2.setText(content); imageview.setImageResource(imageViews); setResult(flag);