Android 共享首选项不适用于int变量
我试图使用共享首选项来存储整数值,但当应用程序处于关闭或旋转状态时,它会再次启动为零。 我想保存该变量值,即使我的应用程序被终止或关闭 我想保存名为alhamdulilahweek的变量,这是我的代码Android 共享首选项不适用于int变量,android,sharedpreferences,Android,Sharedpreferences,我试图使用共享首选项来存储整数值,但当应用程序处于关闭或旋转状态时,它会再次启动为零。 我想保存该变量值,即使我的应用程序被终止或关闭 我想保存名为alhamdulilahweek的变量,这是我的代码 public class FragTasbeeh extends Fragment { public static final String[] items={"Alhamdulilah","SubhanAllah","AllahuAkbar"}; ImageView ivI
public class FragTasbeeh extends Fragment {
public static final String[] items={"Alhamdulilah","SubhanAllah","AllahuAkbar"};
ImageView ivIcon;
Context context;
TextView tvItemName;
TextView mview;
TextView wview;
Button add,reset;
int counter=0;
int allahuakbarweek,allahuakbarmonth,subhanallahweek,subhanallahmonth,alhamdulilahweek,alhamdulilahmonth;
int month;
int count,alhamdulilahcount,subhanallahcount,allahuakbarcount;
Time t=new Time(Time.getCurrentTimezone());
SharedPreferences share;
public static final String IMAGE_RESOURCE_ID = "iconResourceID";
public static final String ITEM_NAME = "itemName";
FragmentManager frg=getFragmentManager();
Fragment fragment=null;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.tasbeeh,container, false);
if(savedInstanceState==null)
{
alhamdulilahcount=0;
alhamdulilahweek=0;
alhamdulilahmonth=0;
}
else
{
savedInstanceState.putInt("alhamdulilahcount", alhamdulilahcount);
savedInstanceState.putInt("alhamdulilahweek", alhamdulilahweek);
savedInstanceState.putInt("alhamdulilahmonth", alhamdulilahmonth);
}
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
share=getActivity().getSharedPreferences("key", 0);
SharedPreferences.Editor editor= share.edit();
add=(Button)getActivity().findViewById(R.id.button1);
tvItemName=(TextView)getActivity().findViewById(R.id.textView1);
wview=(TextView)getActivity().findViewById(R.id.textView2);
mview=(TextView)getActivity().findViewById(R.id.textView3);
Spinner dropdown = (Spinner)getActivity().findViewById(R.id.spin);
ArrayAdapter<String> adapter = new ArrayAdapter<String> (this.getActivity(),R.layout.actionbar,R.id.spintext, items);
dropdown.setAdapter(adapter);
dropdown.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long arg3) {
// TODO Auto-generated method stub
switch(position){
case 0:
tvItemName.setText(alhamdulilahcount+"");
mview.setText(alhamdulilahmonth+"");
wview.setText(alhamdulilahweek+"");
alhamdulilahcount();
break;
case 1:
tvItemName.setText(subhanallahcount+"");
mview.setText(subhanallahmonth+"");
wview.setText(subhanallahweek+"");
subhanallahcount();
break;
case 2:
tvItemName.setText(allahuakbarcount+"");
mview.setText(allahuakbarmonth+"");
wview.setText(allahuakbarweek+"");
allahuakbarcount();
break;
default:
break;
}
}
public void allahuakbarcount() {
// TODO Auto-generated method stub
count=0;
month=0;
week=0;
add = (Button)getActivity().findViewById(R.id.button1);
reset = (Button)getActivity().findViewById(R.id.button2);
reset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
allahuakbarcount=0;
tvItemName.setText(allahuakbarcount+"");
}
});
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
allahuakbarcount++;
week++;
month++;
allahuakbarweek++;
allahuakbarmonth++;
tvItemName.setText(allahuakbarcount+"");
mview.setText(allahuakbarmonth+"");
wview.setText(allahuakbarweek+"");
}
});
}
public void subhanallahcount() {
// TODO Auto-generated method stub
count=0;
add = (Button)getActivity().findViewById(R.id.button1);
reset = (Button)getActivity().findViewById(R.id.button2);
reset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
subhanallahcount=0;
tvItemName.setText(subhanallahcount+"");
}
});
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
subhanallahcount++;
week=week+count;
month=month+count;
subhanallahweek++;
subhanallahmonth++;
tvItemName.setText(subhanallahcount+"");
mview.setText(subhanallahmonth+"");
wview.setText(subhanallahweek+"");
}
});
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}); }
public void alhamdulilahcount() {
// TODO Auto-generated method stub
alhamdulilahcount=0;
add = (Button)getActivity().findViewById(R.id.button1);
reset = (Button)getActivity().findViewById(R.id.button2);
reset.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
alhamdulilahcount=0;
tvItemName.setText(alhamdulilahcount+"");
}
});
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
alhamdulilahcount++;
week++;
month++;
alhamdulilahweek++;
alhamdulilahmonth++;
SharedPreferences.Editor editor=share.edit();
editor.putInt("value1", alhamdulilahweek);
editor.commit();
int count=share.getInt("value1", -1);
tvItemName.setText(alhamdulilahcount+"");
mview.setText(alhamdulilahmonth+"");
wview.setText(count+"");
}
});
}
/* (non-Javadoc)
* @see android.app.Fragment#onSaveInstanceState(android.os.Bundle)
*/
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putInt("alhamdulilahcount", alhamdulilahcount);
savedInstanceState.putInt("alhamdulilahweek", alhamdulilahweek);
savedInstanceState.putInt("alhamdulilahmonth", alhamdulilahmonth);
}
}
但这取决于alhamdulilahweek,它可能是inti到0,这就是为什么您的共享pref id 0在编辑共享prefno之前记录它,我不会再次将其初始化回零。检查代码