24小时热门版块排行榜    

查看: 312  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

tdlovelife

新虫 (初入文坛)

[求助] android sharedpreferences 求助,望大侠们指点一下

想用eclipse实现一个坐标绘制功能,其X,Y轴的范围和刻度会随着测试模式的不同而发生改变。测试模式的值和布局用listpreference实现。但是,在调试过程中发现用sharedpreferences方法无法有效获得保存在listprefereces中的值,导致绘图程序不能正常运行,求高人指点,不胜感激。代码如下:
测试模式的名称和对应值保存在mode.xml文件中,其代码如下:



   
        环境测试
        运动测试
        减去环境
      
   

   
        1
        2
        3
   




listpreferences布局用mode_preferences.xml实现,代码如下:


    android:title="测试" >

            android:entries="@array/mode_name"
        android:entryValues="@array/mode_value"
        android:key="MODE"
        android:persistent="true"
        android:title="测试模式" >
   



最后在modepreference.java中生成布局,并监听其值是否改变,然后取出保存值,等待画图程序调用。代码如下:
package radar.text;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.util.Log;

public class modePreferences extends PreferenceActivity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                addPreferencesFromResource(R.xml.mode_preferences);

            final ListPreference modes = (ListPreference)findPreference("MODE" ) ;
                modes.setSummary(modes.getValue()) ;
                Log.i("存储的值为", ""+modes.getValue()) ;
     modes.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
          public boolean onPreferenceChange(Preference preference, Object newValue) {
                preference.setSummary((String)newValue);
                Log.i("存储的值为", ""+newValue);
                return true;       
                        }
                });       
                SharedPreferences sp1 = getSharedPreferences("radar.text_preferences",MODE_PRIVATE);
                String mode = sp1.getString("MODE", "-1" );
        }       
}
此时程序会报出warning:mode is never used,然后在画图类中想要用
    public modePreferences LmodePreferences = new modePreferences();
    public String mode =LmodePreferences.mode;调用保存值,发现没有用,程序根本不会把保存值传到画图类中。
求大侠们指点一下菜鸟啊,怎样才能正确的将保持的值取出来并在画图类中得到啊!!不胜感激!!

[ Last edited by jjdg on 2012-9-21 at 15:55 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tdlovelife

新虫 (初入文坛)

没有人知道吗?求指点啊
3楼2012-09-24 19:20:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

tdlovelife

新虫 (初入文坛)

编辑不知哪儿出问题了,把括号给弄成表情了,请大家无视外加见谅啊。那个表情其实是);
2楼2012-09-21 12:57:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见