Android Seek Bar保存的首选项

时间:2013-03-31 12:56:24

标签: android seekbar

您好我在尝试获取一个SeekBar将使用.getprogress进入整数的整数,该整数将由首选项保存并将转到我的应用程序另一侧的toast代码中事情变得更容易了我的代码。

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.SeekBar.OnSeekBarChangeListener;
import tk.mizzeeboy.freestorageconverter.R;

public class SettingsActivity extends Activity{

    SeekBar cl;
    TextView t;
    String lolly , finlly;
    int hehe;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.333);

        cl = (SeekBar) findViewById(R.id.seekB3r1);
        t = (TextView) findViewById(R.id.textV3w1);

        cl.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
                // TODO Auto-generated method stub

                t.setTextSize((cl.getProgress()) * getResources().getDisplayMetrics().density);
                hehe = cl.getProgress(); 
                finlly.valueOf(hehe);

                SharedPreferences mypreferences = getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = mypreferences.edit();
                editor.putString("TeamName", finlly);
                editor.commit();

            }
        });

    }

}

在我的其他活动中,我想打开并阅读它后面的代码

SharedPreferences mypreferences = getApplicationContext().getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
              String teamnamestring = mypreferences.getString("TeamName", "Please Enter :)"); 
            Toast andEggs = Toast.makeText(BitActivity.this, teamnamestring , Toast.LENGTH_SHORT);
            andEggs.show();

但我的问题是,我每次都会收到请输入标志,如果有人帮忙,它不会拿起我的整数吗?

1 个答案:

答案 0 :(得分:0)

TGMCians所说的是,您将hehe作为Int添加到首选项中editor.putInt("TeamName", hehe);),,然后将其作为String添加到其他活动中mypreferences.getString("TeamName",... 1}})。这会导致ClassCastException。或者,你从开头就把它作为String或者在第二个活动中把它作为Int

尝试:

    int val=mypreferences.getInt("TeamName",-1);
String teamnamestring="";
if(val==-1){
teamnamestring="Please Set Up Your Custom Text Size!";}
else {teamnamestring=String.ValueOf(val);}

Toast andEggs = Toast.makeText(BitActivity.this, teamnamestring , Toast.LENGTH_SHORT);
            andEggs.show();