ListView不会显示数据库中的日期

时间:2014-10-02 10:51:35

标签: android

在我的数据库中使用MMM / dd / yyyy格式的日期保存我无法获得listView以填充日期,如果我以dd / MM / yyyy或甚至MM / dd / yyyy保存日期

public class ListByDate extends ListActivity {

    DBAdapter myDB;
    String tag = "List By Date";




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

        ArrayList<String> db_results = new ArrayList<String>();
        Cursor C = myDB.getDate();

        while (C.moveToNext()) {
            db_results.add(String.valueOf(C.getString(C
                    .getColumnIndex(DBAdapter.KEY_DATE))));
        }

        C.close();

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, db_results));

    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        Object date1 = this.getListAdapter().getItem(position);
        String dateClicked = date1.toString();





        SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy");
        Date dateClick = null;
        try {
            dateClick = sdf.parse(dateClicked);
        } catch (java.text.ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        long da = dateClick.getTime();


        // Log to test clicks

        Log.v("List Item Click", dateClicked + " " + id + " " + position);




        Intent sd = new Intent(this, SelectedDate.class);
        sd.putExtra("seldate", dateClicked);
        sd.putExtra("selda", da);
        startActivity(sd);
        finish();

    }

    private void openDB() {
        myDB = new DBAdapter(this);
        myDB.open();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        myDB.close();
    }

    @Override
    protected void onStart() {

        super.onStart();

        Log.i(tag, "Start Called");

    }

    @Override
    protected void onResume() {

        super.onResume();

        Log.i(tag, "Resume Called");
    }

    @Override
    protected void onPause() {

        super.onPause();
        myDB.close();

        Log.i(tag, "Pause Called");
    }

    @Override
    protected void onStop() {

        super.onStop();

        myDB.close();

        Log.i(tag, "Stop Called");
    }

}

我试图避免的是listView中日期的顺序 如果我在新西兰(我居住的地方)的日常日期格式中将日期保存到数据库dd / MM / yyyy 日期将按dd排序,我想按月排序 我不想要:

2014年10月8日

2014年10月9日

2014年11月8日

2014年11月9日

我认为使用MMM dd yyyy(并感谢XFactor指出/错误)会解决这个问题并且不会让人迷惑, 如果我使用MM / dd / yyyy来自新西兰的人可能并且可能会读到2014年12月10日dd / MM / yyyy 2014年12月10日而不是2014年10月12日

如果我查看我的数据库,日期存储MMM dd yyyy但listView将打开一个空列表,正如我所说,它与dd / MM / yyyy一起正常工作

0 个答案:

没有答案