【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跳转到选项卡中,而由选项卡中某一个选项来终结,该如何处理?

思考中……


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Android Intent是一种用于在应用程序组件之间传递消息的机制。通过使用Intent,我们可以启动另一个Activity或Service,并将数据传递给它们。在Android中,Intent页面是一种常见的用法,可以通过Intent来启动另一个Activity,从而实现页面。 ### 回答2: Android IntentAndroid平台中最重要的技术之一,用于在应用程序中调用其他应用程序的功能或在应用程序内部进行页面之间的切换。IntentAndroid开发中起到至关重要的作用,它允许应用程序发送请求去查看其他应用程序中的数据或者执行特定的动作。 Android Intent页面是在应用程序内部实现页面之间的,它可以将数据通过Intent的putExtra方法传递给目标Activity,实现更加个性化的操作。 Android Intent页面需要通过代码设置Intent的相关参数实现。其中,主要需要设置的参数包括要的Activity类、传输数据的Intent参数等等。 对于要的目标Activity类,需要在Intent的构造方法中指定目标Activity的类名,如下所示: ``` Intent intent = new Intent(this, TargetActivity.class); startActivity(intent); //到目标Activity ``` 如果需要在页面的同时传递数据到目标Activity中,则需要在Intent中调用putExtra方法,并传递参数名称和参数值的键值对,如下所示: ``` Intent intent = new Intent(this, TargetActivity.class); intent.putExtra("data", "Hello World!"); //传递字符串 startActivity(intent); //到目标Activity,并传递数据 ``` 在目标Activity中,可以通过调用getIntent方法获取到传递的Intent,并调用其getExtra方法获取传递过来的参数值,如下所示: ``` Intent intent = getIntent(); String data = intent.getStringExtra("data"); //获取传递过来的字符串 ``` 总之,Android Intent页面Android开发中必不可少的技术,它可以让我们在应用程序内更加方便、灵活地进行页面之间的切换和数据的传递。同时,需要注意的是,在使用Intent时,必须保证目标Activity的类名和传输数据的参数名称与值在应用程序中的代码中都必须是正确的,才能确保的成功。 ### 回答3: Android Intent 页面Android 开发中的一个常用功能。Intent 通常用来在应用程序组件之间传递数据和开启活动(Activity)或服务,实现不同组件之间的通信。 Android Intent 分为显式 Intent 和隐式 Intent。显式 Intent 指定了具体的组件(activity、service、broadcast receiver)的名称,用来明确指示 App 中的一个组件需要执行特定的操作。隐式 Intent 则没有指明组件名称,而是指定了一系列需要满足的条件,让系统来寻找合适的组件去执行指定的操作。 在使用 Intent 页面时,一般先需要定义 Intent,并设置需要传递的参数。然后使用 startActivity() 方法启动新的 Activity,或使用 startActivityForResult() 方法启动新的 Activity 并返回结果。 下面是一个使用显式 Intent 的例子: ```kotlin // 声明 Intent val intent = Intent(this, SecondActivity::class.java) // 传递参数 intent.putExtra("key", value) // 开始 startActivity(intent) ``` 在这个例子中,我们声明了一个 Intent,指定了需要启动的 Activity,然后使用 putExtra() 方法传递参数,最后使用 startActivity() 方法启动新的 Activity。 如果要支持 Activity 返回结果,则需要使用 startActivityForResult() 方法。下面是一个示例: ```kotlin // 声明 Intent val intent = Intent(this, SecondActivity::class.java) // 传递参数 intent.putExtra("key", value) // 开始 startActivityForResult(intent, REQUEST_CODE) ``` 在这个例子中,我们同样声明了一个 Intent,指定了需要启动的 Activity,然后使用 putExtra() 方法传递参数,使用 startActivityForResult() 方法启动新的 Activity,并指定一个 REQUEST_CODE 作为返回标识,用于区分不同的返回结果。 在新的 Activity 中,在需要返回结果的地方使用 setResult() 方法返回数据,并调用 finish() 关闭当前 Activity。下面是一个示例: ```kotlin // 返回结果 val data = Intent() data.putExtra("result", result) setResult(Activity.RESULT_OK, data) // 关闭 Activity finish() ``` 在这个例子中,我们使用 setResult() 方法设置返回结果,包括返回码和数据,然后使用 finish() 方法关闭当前 Activity。 总的来说,通过 Intent 页面Android 开发中的一个基础功能,需要熟练掌握,才能更好地开发出高质量的 Android 应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值