-1

How can I save state of activity that setBackgroundResource and setTextColor I have set up in if sentence remains changed when I start activity again?

if (cases == 1) {
            TextView layout = (TextView) findViewById(R.id.textView1);
            layout.setBackgroundResource(R.drawable.izbrano);
            layout.setTextColor(Color.parseColor("#d7a308"));
            ImageView image = (ImageView) findViewById(R.id.imageOdprto);
            image.setImageResource(R.drawable.o1);
            String strIi = formatter.format(cases);
            text.setText(strIi + "€");

            }
ribicincc
  • 7
  • 6

3 Answers3

0

It seems that you need to store settings instead of the Activity's state. In this case I would suggest using SharedPreferences.

Chaosit
  • 1,116
  • 7
  • 21
  • I'm looking at SharedPreferences but don't have a clue how to save setBackgroundResource or setTextColor.. – ribicincc Apr 29 '15 at 10:27
  • You can store either integer indicating a set of resources to be picked during Activity creation or directly store integer ID of the resource in SharedPreferences – Chaosit Apr 29 '15 at 10:29
0

Maybe it is more easy just to remember your cases value (assumed it is global):

@Override
public void onPause(){
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt("cases", cases);
    editor.commit();
    super.onPause();
}

@Override
public void onResume(){
    super.onResume();
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    cases = sharedPref.getInt("cases", 0);  
    if ( cases == 0 ){
        // do stuff
    } else {
        // do more stuff
    }
}
Jason Saruulo
  • 1,837
  • 4
  • 21
  • 21
0

Using preferences is not much more preferred. Here is a nice tutorial for how to save activity states. Check this Link

it suggests,

int someVar;
@Override
protected void onSaveInstanceState(Bundle outState) {
   outState.putInt("someVar", someVar);
   outState.putString(“text”, tv1.getText().toString());
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
   super.onActivityCreated(savedInstanceState);
   someVar = savedInstanceState.getInt("someVar", 0);
   tv1.setText(savedInstanceState.getString(“text”));
}
Neal Ahluvalia
  • 1,538
  • 1
  • 10
  • 20