• 多个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(); 

     

     

     

  • 相关阅读:
    day3---字符串的索引与切片
    day4---int bool str之间相互转换
    day3---数据类型整体分析
    day2---while else
    day2---运算符
    day2---格式化输出
    ES6-04 Promise设计 类 模块
    jquery02-效果动画
    jquery01-基础使用
    bootstrap-03 常用重要组件(2)
  • 原文地址:https://www.cnblogs.com/wzachenjian/p/3654581.html
Copyright © 2020-2023  润新知