1

これは私の非活動クラスです:

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;
    }
}

(friendsId)nullではないフラグメントクラスでアプリケーションクラスのデータを使用しました。

それからアプリケーションクラスのデータを呼び出すとPostManager、値nullが返されます。

との値を確認しようとfriendsIdmessageましたLog.e。しかし、nullPointer例外が発生します。

PostManager constructorこれは、アプリケーションクラスから呼び出すすべての値がnullであることを意味しますか?はいの場合、どうすればよいですか?

クラスにsession、applicationcontext、message、friendsIdの値が必要ですPostManager。これらの値をに渡すことはできますが、このクラスはどのクラスが拡張するかPostManagerによって呼び出され、このアラームは。を拡張する別のクラスから設定されます。必要なすべての値は、を除いてこのクラスによって作成されます。これらの値をfirst class-> alarmclass->postmanagerクラスから渡す方法がわかりません。onReceive()alarm classBroadcastReceiverFragmentfriendsId

アラームクラスのマニフェスト:

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

1 に答える 1

1

サブクラスの新しいインスタンスを作成しているApplicationため、これらのメンバー変数は設定されません。

代わりに、この質問のアプローチを使用して、の静的変数に簡単にアクセスできるように保存できますApplication。新しいインスタンスを作成する代わりに、このようなものを使用してください。

于 2012-12-10T22:08:27.330 に答える