【发布时间】:2015-05-20 19:37:41
【问题描述】:
我在 Android 中使用 ColorPicker。当我从ColorPicker 设置所需的颜色时,它可以工作。但是当我退出并重新启动我的activity 时,我的颜色又恢复为默认值。我已经解决这个问题超过 2 周了,并尝试了 SharedPreferences 的每一件事!这是我的代码:
MainActivity.java:
package com.example.project;
import yuku.ambilwarna.AmbilWarnaDialog;
import yuku.ambilwarna.AmbilWarnaDialog.OnAmbilWarnaListener;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RelativeLayout;
public class Preferences extends Activity {
String[] pref_list = { "Background Color", "Background Wallpaper" };
RelativeLayout background;
public static final String MY_PREFS_NAME = "MyPrefs";
Editor editor;
SharedPreferences sharedpreference;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
background = (RelativeLayout) findViewById(R.id.p_rl);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.lv_activity, pref_list);
ListView listView = (ListView) findViewById(R.id.pref_list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == 0) {
colorpicker();
} else {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(
Intent.createChooser(intent, "Select Picture"), 1);
}
}
});
}
public void colorpicker() {
AmbilWarnaDialog dialog = new AmbilWarnaDialog(this, 0xff0000ff,
new OnAmbilWarnaListener() {
@Override
public void onCancel(AmbilWarnaDialog dialog) {
}
@Override
public void onOk(AmbilWarnaDialog dialog, int color) {
SharedPreferences sharedpreference = getApplicationContext()
.getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
Editor editor = sharedpreference.edit();
editor.putInt("Color code", color);
editor.commit();
Preferences.this.findViewById(R.id.p_rl)
.setBackgroundColor(color);
Preferences.this.findViewById(R.id.pref_list)
.setBackgroundColor(color);
}
});
dialog.show();
}
public void run(View view) {
SharedPreferences sharedpreference = getSharedPreferences(
MY_PREFS_NAME, MODE_PRIVATE);
sharedpreference.getInt("Color code", 0);
editor.commit();
}
}
但这不是简单的工作!我的代码有什么问题?
【问题讨论】:
-
没人愿意帮忙吗?
标签: android sharedpreferences color-picker