0

私は最近、いくつかのデータ構造を単純なキーと値のマップに投稿することで単純化しようとしました。ログをプッシュして、.put メソッド中に値がキーに関連付けられていることを確認します。

後で .get を呼び出すと、値は使用できなくなります。重要なコード スニペット:

MainActivity.class

public final HashMap<String, Integer> resumeMap = new HashMap<String, Integer>();

        if (resumeMap.containsKey(url)) {
                Log.i("Value is there!", url);
                resumeTime = resumeMap.get(url);
                Log.i("Value set to:", "" + resumeTime);
            } else {
                resumeTime = 0;
                Log.i("Value is not found!", "" + url);
            }

public void setHashmap(String url, Integer time) {
    resumeMap.put(url, time);
    int newTime = resumeMap.get(url);
    Log.i("Setting:", "URL: " + url);
    Log.i("Setting:", "TIME:" + newTime);
}

VideoPlayer.class

MainActivity setter = new MainActivity();
setter.setHashmap(urlString, player.getCurrentPosition());

setHashmap メソッドでは、ログは期待どおりに URL と時刻の両方を正しく出力しています。ただし、デバッガーが「値が見つかりません!」を介して予想される一致するキーを確認している間でも、resumeMap.containsKey(url) は false のままです。出力。

明確にするために、MainActivity の最初のパスでは、結果が見つからないことが予想されます。その後、resumeTime が 0 で VideoPlayer クラスが呼び出され、適切な結果が得られます。キーと値の設定を確認しましたが、同じリンクを開くと、まだ 0 が返されます。

私はもともと Hashmap を独自のクラスで作成しましたが、結果は同じでした。デバッグのためだけにマップを MainActivity に移動しました。ご協力いただける場合は、何卒よろしくお願いいたします。

4

1 に答える 1