1

*この数日間、この問題に悩まされてきました。SharedPreferencesを使用して、ユーザーがToggleButtonを介してゲーム内オーディオの選択したオプションを保存できるようにしようとしていますが、アプリを実行して「完了」ボタンをクリックしてmain_activity画面に戻り、設定をもう一度クリックしても保存されません。グーグル、私の本、このサイトでこれについて調査しましたが、多くの方法で結果は同じです。 。私はAndroid開発に不慣れで、アプリ開発はもちろんのこと、ここ数週間でこれが私にとって大きな障害になっていることを学びました。この質問がこのサイトですでに取り上げられている場合はお詫びしますが、本当に途方に暮れています。私がここで間違っていることについて。これが私の設定アクティビティからの私のコードです。

package com.fullfrontalgames.numberfighter;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ToggleButton;    

public class Settings extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings);  

        Button Notifications = (Button) findViewById(R.id.Notifications);
        Button Done = (Button) findViewById(R.id.done);
        Button AccountSettings = (Button) findViewById(R.id.AccountSettings);
        final ToggleButton AT = (ToggleButton) findViewById(R.id.AudioToggle);
        AT.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                {
                    if ((AT.isChecked()))
                    {
                        SharedPreferences appPrefs =
                        getSharedPreferences("com.fullfrontalgames.numberfighter.Settings_preferences",
                                        MODE_PRIVATE);
                        SharedPreferences.Editor editor = appPrefs.edit();
                        editor.putBoolean("atpref", AT.isChecked()); //value to store
                        editor.commit();
                    }
                }
            }
        });
        SharedPreferences appPrefs =
                getSharedPreferences("com.fullfrontalgames.numberfighter.Settings_preferences",
                MODE_PRIVATE);
        boolean atpref = appPrefs.getBoolean("atpref", true); //default is true
        AT.setChecked(atpref);
        Done.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent Intent = new Intent(Settings.this,activity_main.class);
                Intent.setFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(Intent);



            }
        });
        Notifications.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.fullfrontalgames.numberfighter.Notifications"));
            }
        });
        AccountSettings.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent("com.fullfrontalgames.numberfighter.AccountSettings"));
            }
        });

    }    

    public void onToggleClicked(View view) {
        // Is the toggle on?
        boolean on = ((ToggleButton) view).isChecked();

        if (on) {
            view.setSoundEffectsEnabled(true);
        } else {
            view.setSoundEffectsEnabled(false);

        }
    }

}
4

1 に答える 1

2

ToggleButtonの状態を保存しようとしている場合はfalse、OnClickListenerのifステートメントを削除するだけです。

if ((AT.isChecked()))

于 2013-03-23T22:36:11.523 に答える