android Activity之间的跳转 android传值与回传值

来源:互联网 发布:商品软件 编辑:程序博客网 时间:2024/05/22 03:21
Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。
Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个意图。
Activity跳转,无返回结果
   这是最简单的Activity跳转方式。从一个Activity启动另一个Activity,直接startActivity(new Intent(当前Activity.this, 下一Activity.class))。
《Activity之间的跳转》
//创建可视化界面
  public class MyActivity extends Activity {
    private Button mbutton   //为跳转的按钮定一个变量
    private String str="带参跳转至另一个Activity";
     @Override       //重写父类Activty的方法
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      //用接收找到这个button的id
       Button mbutton=(Button)findViewById(R.id.onebutton);
      //监听这个按钮使用setOnClickListener     //匿名内部类监听
        mbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            startActivity(new Intent (MyActivity.this,Text_view.class))
        }
    }


《传值》


  //从一个Activity带参传入另一个Activity
    mbutton.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
          //inten接收但前的界面和跳转去的界面
          Intent intent=new Intent(MyActivity.this,Text_view.class); 
                //Bundle方法
                Bundle bundle=new Bundle();
                //字符串导入bundle
                bundle.putString("key",str);

          //图片导入
                Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.welcome_logo);
                图片的bitmap放入intent
                intent.putExtra("key1",bitmap);

                //bundle放入intent
                intent.putExtras(bundle);
                //启动
                startActivity(intent);
//另一个Activity
     //用bundle接受呢个intent的值
        Bundle bundle=intent.getExtras()
     //创建一个String的字符串接收这个bundle接收到的字符串
        String s=bundle.getString("key");
     //用textView接受找到的这个Activity的呢个TextView的id
        TextView textView=(TextView)findViewById(R.id.onetext);
     //这个TextView更改为接受到S这个字符串的值
        textView.setText(s);
     //创建一个imageView找到这个Activity的ImageView的id
        ImageView imageView=(ImageView)findViewById(R.id.oneimageview);
     //用bitmap接收图片
         Bitmap bitmap=(Bitmap)intent.getParcelableExtra("key1");
     //将图片更改为接受到这个
         imageView.setImageBitmap(bitmap);


《回传值》

进入一个Activity将进入的这个Activity的值带回去
//Activity回传值
//创建可视化界面
  public class MyActivity extends Activity {
    private Button mbutton   //为跳转的按钮定一个变量
     @Override       //重写父类Activty的方法
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      //用接收找到这个button的id
       Button mbutton=(Button)findViewById(R.id.onebutton);
      //监听这个按钮使用setOnClickListener     //匿名内部类监听
        mbutton.setOnClickListener(new View.OnClickListener() {
         @Override
            public void onClick(View v) {
              Intent intent=new Intent(MyActivity.this,Text_view.class);
            //直接跳转
               startActivityForResult(intent, 1);
           }
        @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //调用父类的方法
        super.onActivityResult(requestCode, resultCode, data);
        //为intent赋值为data
        Intent intent=data;
        //用字符串str接收
        String str=intent.getStringExtra("hui");
        //更改这个文本框的值为接受到的呢个字符串str
        textView.setText(str);
        }
    }
//另一个Activity
    public class Text_view extends Activity{
    private Button button;
    String str="asdasdsa";
    Intent intent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.paomaxiaoguo);
        //接受呢个intent
        intent=getIntent();
        //用button接收找到这个返回传值的按钮
        button=(Button)findViewById(R.id.hui);
        //监听这个button
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               //给这个按钮写入这个字符串
                intent.putExtra("hui",str);
                //返回这个intent。回调值
                setResult(1,intent);
                //删除这边的
                finish();
            }
        });


0 0
原创粉丝点击