• 实例教程十二:为应用添加多个Activity与参数传递


    原文链接:http://www.eoeandroid.com/thread-204945-1-1.html

    同时不错的帖子:

    Andorid页面拨打电话
    http://www.eoeandroid.com/thread-211456-1-1.html

    仿QQ的源码,客户端和服务端都有的啦
    http://www.eoeandroid.com/thread-212343-1-1.html

    手机铃声软件-android源代码
    http://www.eoeandroid.com/thread-211143-1-1.html

    -------------------帖子正文---------------

    MainActivity效果图

    OtherActivity.xml效果图

    结果图

     

    package cn.itcast.activitys; 
      
    import android.app.Activity; 
    import android.content.ComponentName; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Toast; 
      
    public class MainActivity extends Activity { 
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
        } 
          
        //Intent --激活组件(Activity),附带数据 
        public void openActivity(View v){ 
                Intent intent = new Intent(); 
                //只能激活本应用里的Activity 
                  
                //传数据 
                //1. 
                //intent.putExtra("company", "iflytek"); 
                //intent.putExtra("age", 5); 
                  
                //2.批量添加传递数据 
                Bundle bundle = new Bundle(); 
                bundle.putString("company", "CSDN"); 
                bundle.putInt("age", 10); 
                intent.putExtras(bundle); 
                  
                //第一种方法 
                intent.setClass(this, OtherActivity.class); //设置要激活的组件 
                  
                //第二种方法 
                //intent.setClassName(this, "cn.itcast.activitys.OtherActivity"); 
                  
                //第三种方法 
                //intent.setComponent(new ComponentName(this, OtherActivity.class)); 
                  
                //第四种方法 -- 显式Intent 
                //Intent intent = new Intent(this, OtherActivity.class); 
                  
                //跨应用激活Activity 
                //第5种方法-- 
                //intent.setClassName("别的应用的包名", "别的应用的Activity"); 
                //例-- intent.setClassName("cn.itcast.activitys", "cn.itcast.activitys.OtherActivity"); 
                             
                //startActivity(intent); 
                  
                //在OtherActivity关闭后,把处理的数据返回给MainActivity 
                    //那必须在MainActivity打开时,选择startActivityForResult() 
                startActivityForResult(intent, 200); 
        } 
          
        //用于得到OtherActivity关闭后返回的结果数据 
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
                String result = data.getStringExtra("result"); 
                Toast.makeText(this, result, 1).show(); 
        } 
    }
    package cn.itcast.activitys; 
      
    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.TextView; 
      
    public class OtherActivity extends Activity { 
            private TextView txtShow; 
              
            @Override
            protected void onCreate(Bundle savedInstanceState) { 
                    // TODO Auto-generated method stub 
                    super.onCreate(savedInstanceState); 
                    setContentView(R.layout.other); 
                      
                    //可用intent.setAction()来区分 
                    //第一种,适用传递方法第1种和第2种 
                    Intent intent = getIntent(); //用于激活它的意图对象 
                    //String company = intent.getStringExtra("company"); 
                    //int age = intent.getIntExtra("age", 0); 
                      
                    Bundle bundle = intent.getExtras(); 
                    String company = bundle.getString("company"); 
                    int age = bundle.getInt("age"); 
                      
                    //接收数据第2种方法 
                    txtShow = (TextView)this.findViewById(R.id.txtShow); 
                    txtShow.setText("公司名:" + company + ",成立" + age + "年"); 
                      
                    //在OtherActivity关闭后,把处理的数据返回给MainActivity 
                    //那必须在MainActivity打开时,选择startActivityForResult() 
                      
            } 
              
            public void closeActivity(View v){                 
                    Intent data = new Intent();                 
                    data.putExtra("result", txtShow.getText()); 
                    //第一个参数--激活码-供MainActivity得知结果码 
                    //来自于OtherActivity的哪一个事件或哪一项数据 
                    setResult(200, data); //设置返回数据 
                    this.finish(); //关闭当前Activity 
            } 
    }
  • 相关阅读:
    JDK的KEYTOOL的应用,以及签署文件的应用(原创)
    2017年Android SDK下载安装及配置教程(附带原文地址)
    C# 使用 MemoryStream 将数据写入内存
    iOS7下隐藏status bar的详细研究
    如何布局包含Image和Title的UIButton
    自定义iOS7导航栏背景,标题和返回按钮文字颜色
    UIRefreshControl自动刷新
    SDWebImage缓存图片的机制(转)
    iOS6的旋屏控制技巧
    IOS开发之----NSDictionary,JSON和XML互相转换
  • 原文地址:https://www.cnblogs.com/vus520/p/2750943.html
Copyright © 2020-2023  润新知