关于PreferenceActivity的使用和一些问题的解决(自定义Title和取值)

2015-07-24 05:36:36 · 作者: · 浏览: 7

android的Setting往往用PreferenceActivity来写的

我们在建立layout文件:

?


类的代码如下:

?

?

public class Settings extends PreferenceActivity {


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		//这个是给Settings加自定义Title
		final boolean isCustom = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
		super.onCreate(savedInstanceState);
		if(isCustom){
			getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_list);
		}
		TextView title_text = (TextView)findViewById(R.id.title_text);
		title_text.setText(Settings);
		Button back = (Button)findViewById(R.id.back);
		back.setVisibility(View.VISIBLE);
		back.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				finish();
				
			}
		});
		
		addPreferencesFromResource(R.xml.seting_preferences);

	}

}

定义themes,把这个activity的theme设置成以下的样子

?

?

?

?

取值的时候可以这样做:

?

SharedPreferences shp = PreferenceManager.getDefaultSharedPreferences(this);
		String s = shp.getString(list, null);  //这个是取ListPreference
		TextView listData = (TextView)findViewById(R.id.listData);
		listData.setText(s);
		
		HashSet set = (HashSet) shp.getStringSet(mutiSelect, null); //这个是取MultiSelectListPreference的值
		Iterator
  
    it = set.iterator();
		String content = ;
		while(it.hasNext()) {
			content += it.next()+,;
		}
		TextView muti_select_data = (TextView)findViewById(R.id.muti_select_data);
		muti_select_data.setText(content);
  

截图是:

\


?