android 混淆activity,Android SharedPreferences混淆

为了实现SettingsActivity与EditTextPreference,首先你必须创建一个PreferenceScreen包含EditTextPreference。

的preferences.xml:

android:key="pref_key_name"

android:title="Name"

android:summary="Enter your name here!"

android:dialogTitle="Enter name:">

2.创建Fragment延伸PreferenceFragment。当user输入他们的name时,请选择initialization并添加OnSharedPreferenceChangeListener至update。

SettingsFragment.java:

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.EditTextPreference;

import android.preference.PreferenceFragment;

import android.preference.PreferenceManager;

public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {

// Preference Keys

public static final String KEY_PREF_NAME = "pref_key_name";

// Shared preference

SharedPreferences mSharedPreferences;

// Name preference

EditTextPreference mPreferenceName;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.preferences);

// Shared preference

mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

// Name preference

mPreferenceName = (EditTextPreference) getPreferenceScreen().findPreference(KEY_PREF_NAME);

// Initialize

initPreferences();

}

public void initPreferences()

{

// Name

String oldName = mSharedPreferences.getString(KEY_PREF_NAME, "Enter your name here!");

// Update view

mPreferenceName.setSummary(oldName);

}

@Override

public void onSharedPreferenceChanged(SharedPreferences sharedPref, String key) {

if(key.equals(KEY_PREF_NAME))

{

// Name

String currentName = sharedPref.getString(key, "DEFAULT_VALUE");

// Update view

mPreferenceName.setSummary(currentName);

}

}

@Override

public void onResume() {

super.onResume();

getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

}

@Override

public void onPause() {

super.onPause();

getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);

}

}

最后,创建SettingsActivity并显示其FrameLayoutSettingsFragment。

SettingsActivity.java:

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.support.v7.widget.Toolbar;

public class SettingsActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_settings);

// Settings Fragment

SettingsFragment settingsFragment = new SettingsFragment();

getFragmentManager().beginTransaction().replace(R.id.content, settingsFragment).commit();

}

@Override

protected void onResume() {

super.onResume();

}

}

使用方法:

使用从preference更新name,得到preference的name值的activity或fragmentsonResume()方法中:

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

protected void onResume() {

super.onResume();

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

// Name

String name = sharedPreferences.getString(SettingsFragment.KEY_PREF_NAME, "DEFAULT_VALUE");

// Do something with name

................

........................

}

}

OUTPUT:

WTaq6.png

希望这将有助于〜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值