`
mmdev
  • 浏览: 12915752 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

一, 概述: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); 
@Override
protected 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跳转到选项卡中,而由选项卡中某一个选项来终结,该如何处理?

思考中……


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics