Android短信日期函数调用

时间:2017-01-01 13:48:49

标签: cursor uri simplecursoradapter

我正在开发Android短信应用。部分内容必须获取收件箱数据(地址,日期,正文)和填充列表视图。通过以下代码可以正常工作:

public void btnInboxOnClick {

            // Create Inbox box URI
            Uri inboxURI = Uri.parse("content://sms/inbox");

            // List required columns
            String[] reqCols = new String[] { "_id", "address", "body", "date" };

            // Get Content Resolver object, which will deal with Content
            // Provider
            ContentResolver cr = getContentResolver();

            // Fetch Inbox SMS Message from Built-in Content Provider
            Cursor c = cr.query(inboxURI, reqCols, null, null, null);

            // Attached Cursor with adapter and display in listview
            adapter = new SimpleCursorAdapter(this, R.layout.row, c,
                    new String[] { "body", "address", "date" }, new int[] {
                            R.id.lblMsg, R.id.lblNumber, R.id.lblDate });
            lvMsg.setAdapter(adapter);

我想插入函数调用以显示有意义的日期时间字符串,而不是从db获取的毫秒数。我的功能代码:

public static String millisToDate(String TimeMillis) {
        String finalDate;
        long tm = Long.parseLong(TimeMillis);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(tm);
        Date date = calendar.getTime();
        SimpleDateFormat outputFormat = new SimpleDateFormat("MMM-dd-yyyy HH:mm");
        finalDate = outputFormat.format(date);
        return finalDate;
    }

任何尝试调用函数编译,但应用程序崩溃。我该如何连接功能?

1 个答案:

答案 0 :(得分:0)

谢谢你,我自己做了:))answer这个也很有帮助,谢谢!

代码如下所示:

public void btnInboxOnClick {

        // Create Inbox box URI
        Uri inboxURI = Uri.parse("content://sms/inbox");

        // List required columns
        String[] reqCols = new String[] { "_id", "address", "body", "date" };

        // Get Content Resolver object, which will deal with Content
        // Provider
        ContentResolver cr = getContentResolver();

        // Fetch Inbox SMS Message from Built-in Content Provider
        Cursor c = cr.query(inboxURI, reqCols, null, null, null);

        // Attached Cursor with adapter and display in listview
        adapter = new SimpleCursorAdapter(this, R.layout.row, c,
                new String[] { "body", "address", "date" }, new int[] {
                        R.id.lblMsg, R.id.lblNumber, R.id.lblDate });

    adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {

    public boolean setViewValue(View aView, Cursor aCursor, int aColumnIndex) {

        if (aColumnIndex == aCursor.getColumnIndex("date")) {
            String createDate = aCursor.getString(aColumnIndex);
            TextView textView = (TextView) aView;
            textView.setText(millisToDate(createDate));
            return true;
            }

    return false;
    }
    });

        lvMsg.setAdapter(adapter);

public static String millisToDate(String TimeMillis) {
        String finalDate;
        long tm = Long.parseLong(TimeMillis);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(tm);
        Date date = calendar.getTime();
        SimpleDateFormat outputFormat = new SimpleDateFormat("MMM-dd-yyyy HH:mm");
        finalDate = outputFormat.format(date);
        return finalDate;
    }

希望这会对某人有所帮助。