使用共享首选项将当前日期保存到TextView

时间:2013-12-24 16:17:56

标签: android android-listview sharedpreferences

我想将当前日期保存到listview中的textview我还有其他所有设置,所以不需要帮助那里只是将日期保存到textview我的代码如下可以有人告诉我什么错误?

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    Date date = new Date(System.currentTimeMillis());
    long millis = date.getTime();
    SharedPreferences prefs =
        PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    SharedPreferences.Editor editor = prefs.edit();
    editor.putLong("time", date.getTime());
    editor.commit();
    SimpleDateFormat sdf = new SimpleDateFormat("M/d/y H:m");
    String biggie = sdf.format(date);
    Date myDate = new Date(prefs.getLong("time", 0));
    holder.day.setText();

    if(convertView == null){
        LayoutInflater inflator =
            (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflator.inflate(R.layout.list_item, parent, false);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);          
      } else {
        holder = (ViewHolder)convertView.getTag();
    }
    holder.gump.setText(argueList.get(position));
}

1 个答案:

答案 0 :(得分:0)

这里有很多要点。 首先,当系统绘制列表中的每个元素时,将调用数组适配器中的getView方法。在那里创建任何变量是不好的做法,因为它会一遍又一遍地做,快速浪费内存并强制垃圾收集器运行。首先,将所有初始化移出方法。

其次,目前还不清楚你在这里要做什么。如果您只想在listview上显示每个条目的日期,只需将日期作为字符串(在getview方法之外 - 在用户查看视图时日期不太可能改变)并设置文本到getView末尾的dateString。

如果您只想做这件事,那么根本不需要这里的偏好......

你能提供更多关于你想要完成的事情的信息吗?