gpt4 book ai didi

android - 应用类返回空值

转载 作者:行者123 更新时间:2023-11-30 03:53:12 29 4
gpt4 key购买 nike

这是我的非 Activity 类:

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class PostManager {

private Bundle bundle;
private Context context;
private Session session;
private String victimId=null;

public PostManager() {
SavedFriend savedFriend = new SavedFriend();
bundle = savedFriend.getBundle();
context = savedFriend.getContext();
session = savedFriend.getSession();
victimId = savedFriend.getfriendsId();

Log.e("postManager", victimId);
Log.e("postManager", bundle.getString("message"));
}
}

这是我的应用程序类:

import java.util.List;

import android.app.Application;
import android.content.Context;
import android.os.Bundle;

import com.facebook.Session;
import com.facebook.model.GraphUser;

public class SavedFriend extends Application {
private List<GraphUser> selectedUsers;
private String friendsId;
private Session session;
private Bundle bundle;
private Context context;

public List<GraphUser> getSelectedUsers() {
return selectedUsers;
}

public void setSelectedUsers(List<GraphUser> selectedUsers) {
this.selectedUsers = selectedUsers;
}

public String getfriendsId() {
return friendsId;
}

public void setfriendsId(String id) {
this.friendsId = id;
}

public Session getSession(){
return session;
}

public void setSession(Session session){
this.session = session;
}

public void setContext(Context context){
this.context = context;
}

public Context getContext(){
return context;
}

public void setBundle(Bundle bundle){
this.bundle = bundle;
}

public Bundle getBundle(){
return bundle;
}
}

我在非空的 fragment 类 (friendsId) 中使用了应用程序类的数据。

当我从 PostManager 调用应用程序类的数据时,它返回值 null。

我试图通过 Log.e 查看 friendsIdmessage 的值。但它给了我 nullPointer 异常。

这是否意味着我在 PostManager 构造函数 中从应用程序类中调用的所有值都为空?如果是,我该怎么办?

我的 PostManager 类中需要 session 、applicationcontext、消息、friendsId 值。我可以将这些值传递给 PostManager,但此类由 alarm classonReceive() 调用,该类扩展了 BroadcastReceiver,这个闹钟是从另一个扩展 Fragment 的类设置的。我需要的所有值都是由这个类创建的,除了friendsId,我不知道如何从first class->alarm class->postmanager class传递这些值。

在警报类的 list 中:

<application android:name=".SavedFriend"
.......>
....
<receiver android:name="package name.Alarm"/>
....
</application>

最佳答案

您正在创建 Application 子类的新实例,因此不会设置任何这些成员变量。

相反,您可以使用 this question 中的方法并存储一个易于访问的 Application 静态变量。使用类似这样的东西而不是创建新实例。

关于android - 应用类返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13809865/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com