【Android】Intent 页面跳转问题以及 会跳刷新 等各种问题汇总

来源:互联网 发布:口腔医学就业前景知乎 编辑:程序博客网 时间:2024/06/08 04:34

一, 概述:Activity作为公共类,继承自ContextThemeWrapper.

        Activity专注于用户所要做的事情。几乎所有的Activity都是和用户进行交互的。因此,Activity通过使用setContentView(view)来展示界面元素。尽管Activities通常是全屏显示窗口的,但是你可以指定下面两种方法的一种来进行显示:

浮动窗体:android:theme="?android:attr/windowIsFloating"嵌入到其他的Activity中。

二,startActivity(Intent)和startActivityForResult(Intent,int)的区别使用:

       startActivity(Intent) 用来启动一个新的 activity ,这个 activity 将被放置在 activity 栈的栈顶。这个方法只有一个参数 Intent ,这个参数描述了将被执行的 activity 

      有时候你希望在一个 activity 结束时得到它返回的结果。举个例子,你可能启动一个 activity 来让用户从通讯簿中选择一个人;当它结束的时候将会返回这个所选择的人。为了得到这个返回的信息,你可以使用 startSubActivity(Intent, int) 这个方法来启动新的 activity ,第二个整形参数将会作为这次调用的识别标记。这个 activity 返回的结果你可以通过 onActivityResult(int, int, String, Bundle) 方法来获得,此方法的第一个参数就是之前调用所使用的识别标记。当 activity 退出的时候,它可以调用 setResult(int) 来将数据返回给他的父进程。这个方法必须提供一个结果码,这个结果码可以使标准结果 RESULT_CANCELED, RESULT_OK ,也可以是其他任何从 RESULT_FIRST_USER 开始的自定义值。此外,它还可以返回一段字符串(经常是一段数据的 URL 地址),一个包含它所有希望值的 Bundle 。这些信息都会在父 activity 的回调函数 Activity.onActivityResult() 中出现,并连同最初提供的识别标记一起(此处有些拗口,意思其实就是子activity 返回的内容、返回码、识别标记都将作为参数,按照不同的返回情况来调用父activity 的Activity.onActivityResult() 方法,以实现出现各种返回时父activity 做出响应的处理)。

三,实例

MainActivity:

 Intent intent = new Intent(MainActivity.this, Bookmarks.class); //必须在这个地方定义 不能在上面定义 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                                startActivityForResult(intent,0); 
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {                                //跳转前 A 设定值  返回值    传递的值       super.onActivityResult(requestCode, resultCode, data);    if(data != null)    {        String str=data.getStringExtra("sec_bookmark_url").toString();        mWebView.loadUrl(str)    }    else         Toast.makeText(MainActivity.this,"结果********$$$", Toast.LENGTH_SHORT).show();    }
Bookmark.java

                 String aaa=(String) users.get(arg2).get("bookmark_url"); //获取                           Intent intent = new Intent();                 // intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//刷新                 intent.putExtra("sec_bookmark_url", aaa);//加上自定义的参数                 setResult(RESULT_OK, intent);                 Bookmarks.this.finish();


这种方法可行,但是如果Bookmark 只是tabactivity中的一个选项卡,MainActivity跳转到选项卡中,而由选项卡中某一个选项来终结,该如何处理?

思考中……


原创粉丝点击