私はまだAndroidにかなり慣れていないので、アプリ内にアチーブメントを実装しようとしています. 基本的には、Google Play デベロッパー サイトの「Type-a-Number Challenge」サンプル アプリで実装されている実績を再現したいと考えています。
実績を処理するためのメソッドとクラスを含む最初のアクティビティと、「処理」のために最初のアクティビティに転送される変数を持つ 2 番目のアクティビティがあります。これを行うために必要だと思われるコードをコピーしましたが、2 番目のクラス内でリスナーを呼び出すと、常に null ポインター例外が発生します。
2 番目のアクティビティのリスナーは次のとおりです。
public interface Listener {
public void onEnteredScore(int score);
}
Listener mListener = null;
public void setListener(Listener l) {
mListener = l;
}
リスナーをそのように呼び出すと、null ポインター例外がここでフラグ付けされます (mRequestedScore は 0 とは異なります)。
mListener.onEnteredScore(mRequestedScore);
最初のアクティビティのクラスは、次のように 2 番目のアクティビティ リスナーを実装します。
public class FirstActivity extends BaseGameActivity
implements SecondActivity.Listener
onEnteredScore メソッドが含まれています
@Override
public void onEnteredScore(int requestedScore) {
checkForAchievements(requestedScore);
pushAccomplishments();
}
リスナーがクリックまたはユーザーによる何らかのアクションを予期しているため、または両方のアクティビティ間で「リンケージ」が適切に確立されていないため、エラーが表示されるかどうかは完全にはわかりません。
同様の問題を探しましたが、まだ何も見つかりませんでした。
間違いが明らかな場合はお詫び申し上げます。
提供されたヘルプに事前に感謝します。