Reputation: 729
i am writing a communication application. i have an issue that i have 2 activity (activity1 and activity2) in activity1 i have a ViewPager
, first fragment in it is FriendsFragment
that show list of friends. in FriendsFragment
i am using a class to listen friends change and use a listener for it. when activity2 starts from activity1 and then close. listener will be null in FriendsFragment
.
Fragment code :
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
.
.
.
FriendListController.with(getActivity()).load(new FriendListController.Callback() {
@Override
public void onSuccess(List<Users> friends) {
users = friends;
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
friendsAdapter.notifyDataSetChanged();
livFriends.requestLayout();
if (users.size() > 0) {
lblHeader.setText(users.get(livFriends.getFirstVisiblePosition())
.getNickname().toUpperCase().substring(0, 1));
}
}
});
}
@Override
public void onError(String error) {
}
});
FriendListController
Code:
public interface Callback {
void onSuccess(List<Users> friends);
void onError(String error);
}
public static FriendListController with(Activity _activity) {
return new FriendListController(_activity);
}
public void loadDatabase(Callback callback) {
callbackObject = callback;
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
Repository repository = new Repository();
friends = repository.UsersRepository.getFriends();
callbackObject.onSuccess(friends);
}
});
thread1.start();
}
in line callbackObject.onSuccess(friends);
i got NullPointerException
.
How can i fix it?
Upvotes: 0
Views: 818
Reputation: 4012
you must destroy your listener in onPause() and re create it in onCreate() of your activity
Upvotes: 1