如何保存动态字符串?

时间:2014-08-18 06:33:33

标签: java android

在我的应用中,我获取当前时间并将其转换为字符串。

如你所见,每次打开活动时都会更改此字符串但是我想将此时间字符串保存在静态字符串中,如果我回到此活动,我可以将其显示给用户。

到目前为止,这是我的代码:

    Time now = new Time();
    now.setToNow();
    String str = now.toString().substring(0, 15);
    textview.setText(str);

实际上我有一个包含项目的列表视图。 这个时间字符串在listview.onitemclicklistener,我希望每当创建该项目时,我都会节省时间,当用户点击时,我会在第二个活动中显示该时间。
例如,如果用户在两天前在listview中创建了该项目,那么点击该项目我会在两天前显示日期和时间:

这是我的代码,详细信息如下:

第一项活动:

list.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Time now = new Time();
            now.setToNow();
            String timedate = now.toString().substring(0, 15);
            Intent intent = new Intent(Albums.this, AlbumPage.class);
            intent.putExtra("extra", timedate);
            startActivity(intent);
        }

第二项活动:

String str = getIntent().getExtras().getString("extra");
textview.setText(str);

这样当我点击每个项目时,它只显示当前时间而不是创建项目的时间(我的列表视图是动态的,用户可以添加或删除项目)。

3 个答案:

答案 0 :(得分:0)

在下面的代码中添加您想要节省当前时间的代码。

  

list.setOnItemClickListener(new OnItemClickListener(){

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
//declare pref editor 
      SharedPreferences prefs; 
      SharedPreferences.Editor prefsEditor;
      prefs = PreferenceManager.getDefaultSharedPreferences(this);


      String  savedTime=prefs.getString("time", "");

      //now check the value of shared pref and apply the condition like this
      if(savedTime.isEmpty()) {
          //set time if time is not set 
          prefsEditor = prefs.edit();
          Time now = new Time();
          now.setToNow();
          String str = now.toString().substring(0, 15);
          prefsEditor.putString("time", str);
          prefsEditor.commit();
Intent intent=new Intent(this, class2.class);
startActivity(intent);

      }
      else {
          //perform your action here if time is already set
Intent intent=new Intent(this, class2.class);
startActivity(intent);
      }
}

答案 1 :(得分:0)

尝试以下代码:

     SharedPreferences sharedpreferences = getSharedPreferences("myPrefs",
Context.MODE_PRIVATE);  
Editor editor = pref.edit();
    Time now = new Time();
    now.setToNow();
    String str = now.toString().substring(0, 15);
    editor.putString("key_name", str); 
    editor.commit();
    textview.setText(str);

答案 2 :(得分:0)

在您的活动 onPause或onDestroy

中使用此代码
  SharedPreferences sharedpreferences = getSharedPreferences("PREF",
   Context.MODE_PRIVATE);  
   Editor editor = sharedpreferences.edit();
   Time now = new Time();
   now.setToNow();
    String str = now.toString().substring(0, 15);
   editor.putString("time", str); 
   editor.commit();

然后检索它使用 onStart()方法中的以下代码

 SharedPreferences sharedpreferences = getSharedPreferences("PREF",
   Context.MODE_PRIVATE); 
 String time = sharedpreferences.getString("time" "default_value");