如何在其他活动中获得优先权

时间:2013-09-20 10:19:42

标签: android textview sharedpreferences seekbar togglebutton

我在一个活动中为我的搜索栏和我的togglebutton做了一个共享首选项,但是我不能做的是如何将这个首选项放到其他活动中,所以当我更改搜索栏时,所有活动中的所有文本化都将改变,当我切换按钮textview和布局的所有颜色将在其他活动中更改

public class CollectionPrayersTextActivity extends Activity {

// Colors Shared Preferences
public SharedPreferences tprefs;
private ToggleButton toggle;
private LinearLayout linear;
// Text Size Shared Preferences
private SharedPreferences prefs;
public static TextView textview;
private SeekBar seekbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // Remove title bar
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    // Remove notification bar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    Window window = getWindow();
    // Unlock the device if locked
    window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
    // Turn screen on if off
    window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    // Keep screen on
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    // Transition between activities
    overridePendingTransition(R.anim.incoming, R.anim.outgoing);
    // On Create
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_collectionprayers_text);
    // Determine The Tools
    seekbar = (SeekBar) findViewById(R.id.seekBarcollectionprayerstext);
    textview = (TextView) findViewById(R.id.id_collectionprayers_txt);
    toggle = (ToggleButton) findViewById(R.id.toggleButton1);
    linear = (LinearLayout) findViewById(R.id.linearcollection);
    // Toogle Share Preferences
    SharedPreferences tprefs = getSharedPreferences(
            "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE);
    toggle.setChecked(tprefs.getBoolean("Switchable", true));
    if (toggle.isChecked()) {
        textview.setTextColor(Color.WHITE);
        linear.setBackgroundColor(Color.BLACK);
        textview.setShadowLayer(0, 0, 0, Color.WHITE);

    } else {

        textview.setTextColor(Color.BLACK);
        linear.setBackgroundColor(Color.WHITE);
        textview.setShadowLayer(0, 0, 0, Color.BLACK);

    }
    // Get Extra From Another Activity
    Intent n = getIntent();
    String mrng = n.getStringExtra("key");
    textview.setText(Html.fromHtml(mrng));
    // SeekBar Preferences
    prefs = getPreferences(MODE_PRIVATE);
    float fs = prefs.getFloat("fontsize", 40);
    seekbar.setProgress((int) fs);
    textview.setTextSize(TypedValue.COMPLEX_UNIT_PX, seekbar.getProgress());
    // Programming SeekBar
    seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            prefs = getPreferences(MODE_PRIVATE);
            SharedPreferences.Editor ed = prefs.edit();
            ed.putFloat("fontsize", textview.getTextSize());
            ed.commit();
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            textview.setTextSize(TypedValue.COMPLEX_UNIT_PX, progress);
        }
    });
    // Programming ToggleButton
    toggle.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (toggle.isChecked()) {
                textview.setTextColor(Color.WHITE);
                linear.setBackgroundColor(Color.BLACK);
                textview.setShadowLayer(0, 0, 0, Color.WHITE);
                SharedPreferences.Editor editor = getSharedPreferences(
                        "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE)
                        .edit();
                editor.putBoolean("Switchable", true);
                editor.commit();

            } else {

                textview.setTextColor(Color.BLACK);
                linear.setBackgroundColor(Color.WHITE);
                textview.setShadowLayer(0, 0, 0, Color.BLACK);
                SharedPreferences.Editor editor = getSharedPreferences(
                        "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE)
                        .edit();
                editor.putBoolean("Switchable", false);
                editor.commit();

            }
        }
    });
}

public void c_default(View V) {
    textview.setTextColor(getResources().getColor(R.color.Vanilla));
    linear.setBackgroundColor(getResources().getColor(R.color.Maroon));
    textview.setShadowLayer((float) 1.5, 2, 2, Color.BLACK);
}

@Override
public void onBackPressed() {
    Intent intent_e3tiraf_back = new Intent(
            CollectionPrayersTextActivity.this,
            CollectionPrayersActivity.class);
    startActivity(intent_e3tiraf_back);
    finish();
}
}

任何帮助????

3 个答案:

答案 0 :(得分:0)

您可以通过以下方式获取另一项活动中的SharedPreference

SharedPreferences tprefs = getSharedPreferences(
        "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE);
String textSize = tprefs.getString("fontsize",null);

此处textSize是您在下一个活动中想要的文本视图的大小。

答案 1 :(得分:0)

SharedPreferences mPref = context.getSharedPreferences(
                "com.e_orthodoxy.orthodox_prayers", Context.MODE_PRIVATE);

        SharedPreferences.Editor editor = mPref.edit();
                Boolean userid=mPref.getBoolean("Switchable", false)

答案 2 :(得分:0)

首先问题不明确。但是如果你按回按钮 当你提到写textview时,一切都会改变 onResume()中的颜色和大小更改代码。 这是一个从共享pref

获取值的sherepreference代码
                    SharedPreferences userGetSession = getSharedPreferences(FRConstants.ACCOUNT_DETAILS_SP, Activity.MODE_PRIVATE);
                    sessionVal = userGetSession.getString("login_session_key", null);
                    userID = userGetSession.getString("login_user_id_key", null);