zoukankan      html  css  js  c++  java
  • 多个Activity之间的跳转(1)

    第一个例子:demo1 
    Main—>SecondActivity—>Main 
    从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main。也就是将子Activity的数据返回给父Activity 
    代码如下: 

    public class Main extends Activity {  
          
        private Button btn;  
        private TextView request_text;  
        private final int FIRST_REQUEST_CODE = 1;  
          
        /** Called when the activity is first created. */  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
              
            request_text = (TextView)this.findViewById(R.id.request_text);  
              
            btn = (Button)this.findViewById(R.id.btn);  
            btn.setOnClickListener(new OnClickListener() {  
                public void onClick(View v) {  
                    Intent i new Intent(Main.this,SecondActivity.class);  
                    i.putExtra("request_text_for_main", "从Main传递到SecondActivity");  
                    startActivityForResult(i, FIRST_REQUEST_CODE);  
                }  
            });  
        }  
          
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            super.onActivityResult(requestCode, resultCode, data);  
            if(requestCode==FIRST_REQUEST_CODE && resultCode==Activity.RESULT_OK){  
                if(data != null) {  
                    request_text.setText(data.getStringExtra("request"));  
                }  
            }  
        }  
    }  
    
    Java代码  
    public class SecondActivity extends Activity{  
          
        private TextView request_text;  
        private Button btn;  
        private String text;  
          
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.second);  
              
            request_text = (TextView)this.findViewById(R.id.request_text);  
              
            if (getIntent().getStringExtra("request_text_for_main") != null) {  
                text = getIntent().getStringExtra("request_text_for_main");  
                request_text.setText(text);  
            }  
              
            btn = (Button)this.findViewById(R.id.btn);  
            btn.setOnClickListener(new OnClickListener() {  
                public void onClick(View v) {  
                    Intent i new Intent();  
                    i.putExtra("request",text+"
    "+"从SecondActivity传递到ThirdActivity");  
                    setResult(Activity.RESULT_OK,i);  
                    finish();  
                }  
            });  
        }  
    }  

     


    图一 

    图一所示是demo初始化的样子,点击第一次跳转进入图二。 

     
    图二 
    图二显示从MainSecondActivity这个过程,再点击第二次跳转即返回Main这个Activity 

     
    图三 
    图三表示跳转结束,Button按钮上面的文字记录跳转的过程。 

    这个例子最主要是第一个Activity Main设置的onActivityResult()方法和startActivityForResult()方法。 
    Main中通过startActivityForResult()调用SecondActivity,然后在onActivityResult()中获取其返回参数,或者说通过onActivityResult()进行回调。 

    SecondActivity中要返回第一个Main必须: 
    setResult(Activity.RESULT_OK,i); 
    finish(); 

     

     

     

  • 相关阅读:
    iOS开发实用干货——强化你的Xcode控制台
    Android App 性能优化实践
    AFNetworking 之于 https 认证
    点击 Run 之后发生了什么?
    happypack 原理解析
    JavaScript 笔记 ( Prototype )
    成立快两年的安卓绿色联盟,现在怎么样了?
    盘点20款主流应用FPS,最Skr帧率测试方法都在这里!
    探寻百度AI3.0背后的技术实践
    流畅购物哪家强?购物类应用“页面过度绘制”情况调查
  • 原文地址:https://www.cnblogs.com/wzachenjian/p/3654581.html
Copyright © 2011-2022 走看看