10

この .java ファイルに SharedPreference があります。一番下に向かって、SharedPreferences の GB_PREFERENCES_BENCH と GB_PREFERENCES_FLIES に値を保存しています。これらの値を別のアクティビティで使用するにはどうすればよいですか? 使用方法については、2 番目のコード例を参照してください。

package com.creativecoders.gymbuddy;

import com.creativecoders.gymbuddy.R;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.TextView;

public class Benchmark extends Activity {

public static final String GB_PREFERENCES = "Prefs";

public static final String GB_PREFERENCES_BENCH = "Bench";
public static final String GB_PREFERENCES_FLIES = "Flies";

SharedPreferences gBValues;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_benchmark);

    gBValues = getSharedPreferences(GB_PREFERENCES, Context.MODE_PRIVATE);

}

public void onStart() {
    super.onStart();

    findViewById(R.id.button5).setOnClickListener(new handleButton5());

}

class handleButton5 implements OnClickListener {
    public void onClick(View v) {

        EditText editText1 = (EditText)findViewById(R.id.editText1);
        String sWeight = editText1.getText().toString();
        final double dWeight = Double.parseDouble(sWeight);

        EditText editText2 = (EditText)findViewById(R.id.editText2);
        String sPush = editText2.getText().toString();
        final double dPush = Double.parseDouble(sPush);

        EditText editText3 = (EditText)findViewById(R.id.editText3);
        String sSit = editText3.getText().toString();
        final double dSit = Double.parseDouble(sSit);

        EditText editText4 = (EditText)findViewById(R.id.editText4);
        String sPull = editText4.getText().toString();
        final double dPull = Double.parseDouble(sPull);

        double dBench = (((Math.floor(dWeight*.0664))*10)-10)+dPush;
        double dFlies = (Math.floor(((Math.floor(dBench*.6)/10)*10)));

        int iBench = (int)dBench;
        int iFlies = (int)dFlies;

        Editor editor1 = gBValues.edit();
        editor1.putInt(GB_PREFERENCES_BENCH, iBench);
        editor1.commit();

        Editor editor2 = gBValues.edit();
        editor2.putInt(GB_PREFERENCES_FLIES, iFlies);
        editor2.commit();

        }
    }

 }

これが私がそれをどのように使用したいかです。(具体的には、TextView のテキストを SharePreference の値に設定する on create メソッドで)

package com.creativecoders.gymbuddy;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class Upper100Start extends Activity {

public static final String GB_PREFERENCES = "Prefs";
public static final String GB_PREFERENCES_CURLS = "Curls";
SharedPreferences gBValues;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.upper100start);

    if (gBValues.contains(GB_PREFERENCES_CURLS)){
    TextView TextView2 = (TextView)findViewById(R.id.textView2);
    TextView2.setText(gBValues.getString(GB_PREFERENCES_CURLS, ""));
    }

}
public void onStart() {
    super.onStart();

    findViewById(R.id.button2).setOnClickListener(new handleButton2());
    findViewById(R.id.button3).setOnClickListener(new handleButton3());
}
class handleButton2 implements OnClickListener {
    public void onClick(View v) {
        Intent intent = new Intent(Upper100Start.this, Upper101.class);
        startActivity(intent);
        }
    }
class handleButton3 implements OnClickListener {
    public void onClick(View v) {
        Intent intent = new Intent(Upper100Start.this, Main.class);
        startActivity(intent);
        }
    }

}
4

1 に答える 1

26

共有設定はアプリケーション全体からアクセスできるため、アプリケーション内のどのアクティビティからでも読み取ることができます。

アクティビティ A にキーと値のペアを格納する:

SharedPreferences settings = getSharedPreferences("mysettings", 
     Context.MODE_PRIVATE);

SharedPreferences.Editor editor = settings.edit();
editor.putString("mystring", "wahay");
editor.commit();

別のアクティビティからこの値を読み取る:

SharedPreferences settings = getSharedPreferences("mysettings", 
    Context.MODE_PRIVATE);
String myString = settings.getString("mystring", "defaultvalue");

詳細については、http://developer.android.com/guide/topics/data/data-storage.html#prefを参照してください。

于 2012-09-28T20:29:34.713 に答える