首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android /通过意图发送活动上下文

Android /通过意图发送活动上下文
EN

Stack Overflow用户
提问于 2019-09-24 10:11:37
回答 2查看 313关注 0票数 0

我在Android中有5个左右的活动(下面显示了其中的2个),它们共享一个公共的导航抽屉。如果我从导航抽屉登录到某个帐户,则在成功登录后,需要加载之前显示的活动。是否可以通过intent发送活动上下文?

FirstActivity.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Intent intent1 = new Intent(FirstActivity.this, Login.class);
intent1.putExtra("activity", "FirstActivity");
startActivity(intent1);
finish();

SecondActivity.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Intent intent2 = new Intent(SecondActivity.this, Login.class);
intent2.putExtra("activity", "SecondActivity");
startActivity(intent2);
finish();

在登录活动中找到要返回的活动名称时,登录成功后返回。

Login.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Intent intent3 = getIntent();
String activity = intent3.getStringExtra("activity");
...
Intent intent4 = new Intent(Login.this, Class.forName(activity));
startActivity(intent4);
finish();

返回以下错误消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
W/System.err: java.lang.ClassNotFoundException: Home
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:453)

有谁知道怎么修理它吗?

使用intent1.putExtra("activity", String.valueOf(FirstActivity.this));也是行不通的,它说com.example.nativeapp.FirstActivity@6a7640是一个无效的类名。

当我试图通过intent发送这些变量值时,我应该将活动上下文转换为Serializable或Parcelable甚至CharSequence吗?Activity或AppCompatActivity似乎没有继承Serializable或Parcelable来解决这个问题。CharSequence似乎与使用字符串没有太大区别。

我知道我可以创建自己的类来存储全局变量和活动上下文,我的活动可以继承它,但是因为我的活动已经继承了NavigationDrawer,所以我的活动不能继承第二个类。我是否可以将其声明为一个接口并继承一个接口以从接口访问全局变量值?Getter和setter方法肯定不能在接口中工作,因为接口中不允许实现函数和声明变量值。

当我试图从一个活动移动到另一个活动时,我一直在考虑使用中央超类来存储变量值并从子类中更改它们,其中一个原因是像这样的活动上下文,我不确定如何通过意图传递它们。这种意图也应该能够在移动应用程序的其他中央全局变量中从一个活动类传递到另一个活动类。中央超类,比如NavigationDrawer,它是一个很好的候选者,因为我所有的Android活动类都是从它继承而来的,如果所有的中央全局变量都存储在它里面,并且当我试图从一个活动移动到另一个活动时,它们从子类中改变,那么最好使用它。

我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2019-09-24 10:20:11

您正在尝试记住上一个活动,然后开始下一个特定的活动。这是做这件事的方法

改变这一点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Intent intent = new Intent(Login.this, Class.forName(activity));
startActivity(intent);
finish();

对这个-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Intent intent = getIntent();
    String lastActivity = intent.getStringExtra("activity"); // lastActivity
    if (lastActivity.equalsIgnoreCase("FirstActivity")) {
        Intent intent = new Intent(Login.this, FirstActivity.class);
        startActivity(intent);
        finish();
    } else if (lastActivity.equalsIgnoreCase("SecondActivity")) {
        Intent intent = new Intent(Login.this, SecondActivity.class);
        startActivity(intent);
        finish();
    }

创建通用方法来优化您的代码

票数 1
EN

Stack Overflow用户

发布于 2019-09-25 11:46:53

您需要提供完全限定的类名。您需要传递"my.fully.qualified.class.name.FirstActivity"而不是"FirstActivity",您可以在其中提供完全限定的类名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58077955

复制
相关文章
android学习笔记----隐式意图和显式意图
显式意图:显式意图明确指明了启动活动的上下文和想要启动的目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
砖业洋__
2023/05/06
1.5K0
android学习笔记----隐式意图和显式意图
如何通过jQuery发送AJAX?
contentType:发生请求时的内容编码类型(application/x-www-form-urlencoded)
切图仔
2022/09/08
1.2K0
通过邮箱发送html报表
前言 需求是发送邮件时, 可以将报表正文贴到邮件里, 可以正常复制选中报表内容. 目前的做法是简单粗暴的转成了一张图片, 这样效果显然是很糟糕的. 今天看到邮箱里可以预览Word, Excel, F1
用户1216491
2018/01/24
2.4K0
PHP 通过api发送邮件
免费的强大的接口:https://sendcloud.sohu.com http://sendcloud.sohu.com/doc/email/code/#php 文档的事例代码,点击下图红色表示框
简单、
2018/07/18
2.9K0
Golang 通过 smtp 发送邮件
package main import( "fmt" "net/smtp" "encoding/base64" ) //html,plain func SendMail( title,user,pswd,smtpserver,port,from,to,subject,body,format string ) error { bs64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
李海彬
2018/03/20
1.4K0
android-活动最佳实践
创建一个BaseActivity 类继承Activity 在onCreate 中输出类名
tea9
2022/07/16
2350
Android-探究活动(一)
setContentView() 给当前活动加载一个布局 例:setContentView(R.layout.first_layout);
博博1998
2022/04/25
3610
Android邮件发送详解
转载:http://flysnow.iteye.com/blog/1128354
forrestlin
2022/04/02
1.1K0
Android邮件发送详解
python通过163邮箱发送邮件
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib import sys import os import datetime import time import MySQLdb import subprocess reload(sys) sys.setdefaultencoding("utf-8") mailto_list = ["xxx@163
py3study
2020/01/13
1.4K0
thingsboard入门通过mqtt发送数据
thingsboard支持三种传输遥测数据方式:http、mqtt以及coap,本文介绍如何通过mqtt协议推送数据到server端,
johnhuster的分享
2022/03/28
2.6K0
thingsboard入门通过mqtt发送数据
通过SmtpClient发送Exchange会议邮件
看到C#中调用Outlook API 发起会议 ,这个完全可以用SMTP方式实现的,下面我的项目中使用的代码: 对于.NET而言,从2.0开始,发邮件已经是一件非常容易的事了。而且新增了一个AlternateView,使用 AlternateView 类可以指定一个电子邮件的不同格式副本。例如,如果您发送 HTML 格式的邮件,您可能希望同时提供邮件的纯文本格式,以防一些收件人使用的电子邮件阅读程序无法显示HTML 内容。 通过使用AlternateView我们就可以实现Exchange 会议邮件的发送。核
张善友
2018/01/19
1.1K0
Vue通过axios发送ajax请求
在Vue中是不支持发送ajax请求的,如果我们要在Vue中发送ajax请求,我们需借助第三方插件 常用发送ajax请求插件有两个 vue-resource和axios,Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
切图仔
2022/09/08
8860
Vue通过axios发送ajax请求
使用python通过http发送json
因为需要通过http协议向服务器post一些数据,于是用python写了一个相关小程序,没想到遇到了一些问题,于是就在这里将这个问题记录一下。
py3study
2020/01/13
3K0
Vue通过axios发送ajax请求
在Vue中是不支持发送ajax请求的,如果我们要在Vue中发送ajax请求,我们需借助第三方插件 常用发送ajax请求插件有两个 vue-resource和axios,Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。
切图仔
2022/09/08
9620
Vue通过axios发送ajax请求
Android 彩色上下文菜单 Context
本文原创首发CSDN,链接 https://blog.csdn.net/qq_41464123/article/details/106954710 ,作者博客https://blog.csdn.net/qq_41464123 ,转载请带上本链接,尤其是脚本之家、码神岛等平台,谢谢配合。
Designer 小郑
2023/08/01
1950
Android 彩色上下文菜单 Context
意图Intent
对意图Intent,学习安卓需掌握。以官方链接:http://www.android-doc.com/reference/android/content/Intent.html 所有文字全靠打。
达达前端
2022/04/28
9840
Android-活动的最佳实践
知晓当前在哪一个活动 工作当中可能接手一份别人的代码,当需要在某个界面修改东西的时候,却找不到这个界面对应的是哪个活动。 新建一个BaseActivity类,右击包名,New,Java Class,输入BaseActivity。 只写一个普通Java类就可以了,并让BaseActivity继承AppCompatActivity,并重写onCreate()方法。
博博1998
2022/04/25
5860
Android-活动的最佳实践
Android语音录制,语音发送
这是一个录音的例子,可用于IM的语音发送,OA的语音留言等。 首先我们需要引入权限:
饮水思源为名
2018/09/06
4.3K0
通过空间上下文特征进行阴影检测
五期飞跃计划还剩7个名额,联系小编,获取你的专属算法工程师学习计划(联系小编SIGAI_NO2)
SIGAI学习与实践平台
2019/04/26
1.2K0
通过空间上下文特征进行阴影检测
点击加载更多

相似问题

android:通过意图发送意图

12

回到Android中的发送意图活动

21

android -通过意图发送图像

12

Android通过意图发送界面

11

Android活动意图

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文