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(); 

     

     

     

  • 相关阅读:
    input上传图片的坑
    nodejs创建一个静态文件服务器的根目录anywhere
    深浅拷贝
    es6中数组的flat()和flatMap()
    new Date()在ios上的坑
    一些常用的css Hack
    IntrospectorCleanupListener
    http header
    ActionContextCleanUp
    OpenSessionInViewFilter
  • 原文地址:https://www.cnblogs.com/wzachenjian/p/3654581.html
Copyright © 2011-2022 走看看