• 初识安卓之activity入门


    从主界面跳转到另一个界面并在两者之间互相传递数据
    public class ActivityTestActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        }
        //点击主视图上一个按钮,执行open方法,转到另一个视图,期间需要使用intent,有两种跳转形式
        public void open(View view){
            Intent intent=new Intent();        
            //跳转形式一:显示意图打开:指明要打开哪个Activity,三中打开的方式如下:
            
            //1.按类字节码打开
            intent.setClass(this, anotherActivity.class);
            /*//2.按类的完整类名打开(带包名的完整类名)
            intent.setClassName(this, "com.itheima.anotherActivity");
            //3.按照工程的唯一标示,打开其他工程总的某个Activity
            intent.setClassName("工程的唯一标示","com.itheima.anotherActivity");*/
            startActivity(intent);
        }
        //跳转形式二:
        public void anotherOpen(View view){
            //隐式意图打开:不知道要打开哪个Activity
            Intent intent=new Intent(); 
            //隐式意图拨打电话
            //隐式意图的行为:(可以在清单文件中设置)
            intent.setAction(Intent.ACTION_CALL);
            //隐式意图的数据,完成行为必须的数据
            intent.setData(Uri.parse("tel:15923486666"));
            //intent.setAction("com.itheima.action.ANOTHER_ACTIVITY");
            startActivity(intent);
            
        }
        
      //跳转到另个一界面的同时,带过去一些数据,intent本身可存放数据
        public void send(View view){        
            Intent intent=new Intent(this, anotherActivity.class); 
            Person p1=new Person("lsk","25");
            Person p2=new Person("shz","23");        
            //List<Person> list=new ArrayList<Person>();  集合本身没有实现序列化,所以无法传递
            intent.putExtra("p1",p1);
            intent.putExtra("p2",p2);
            startActivity(intent);     
        }
        
    //如果是以 startActivityForResult(intent, 100);的方式跳转,则表明本次跳转是需要下一个界面返回数据回来的,返回的数据在主界面里用 onActivityResult方法获取,
    public void result(View view) {
            Intent intent = new Intent(this, OtherActivity.class);
            intent.putExtra("name", "张三");        
            intent.putExtra("age", 18);
           //200是请求码
            startActivityForResult(intent, 200);    // 启动一个Activity, 等待返回结果
        }
        
        // 当前Activity启动的新Activity关闭时, 就会自动执行这个方法,即有当初的请求码,也有回来的响应吗
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            TextView mainTV = (TextView) findViewById(R.id.mainTV);
            mainTV.setText(data.getStringExtra("name") + ": " + data.getIntExtra("age", -1));
        }
        

    另一个界面上接受数据,同时回送一些数据

    public class anotherActivity extends Activity {
         public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.other);      
                //对象在意图间的传递是通过把类文件序列化到磁盘,以文件的形式在多个activity间传递的
                Intent intent=getIntent();
                
                //接受上一个界面带过来的数据
                Person p1=(Person) intent.getSerializableExtra("p1");
                Person p2=(Person) intent.getSerializableExtra("p2");
                TextView textTV=(TextView) findViewById(R.id.textTV);
                textTV.setText(p1.toString()+p2.toString());
                
                //回送给上一个页面一些数据
                Intent data=new Intent();
                data.putExtra("name", "王五");
                data.putExtra("age", "21");
                100响应码
                setResult(100, data);
            }
         public void close(View view){
             finish();
         }
    }
  • 相关阅读:
    SpreadJS V13.0发布,聚焦表单设计与数据交互,让您的工作效率突飞猛进!
    springboot---redis缓存的使用
    springboot logback日志的使用
    Https与Http的区别以及Https的解说
    maven的使用解说
    Spring SpringMVC myBatis(简称SSM)理解
    抽象类与接口的区别
    Hadoop综合大作业
    hive基本操作与应用
    熟悉HBase基本操作
  • 原文地址:https://www.cnblogs.com/94007boy/p/2791545.html
Copyright © 2020-2023  润新知