2017-01-01 15 views
0

Я работаю над приложением Android SMS. Часть его должна извлекать данные в почтовом ящике (адрес, дата, тело) и вид списка. Это прекрасно работает через следующий код:Функция вызова функции SMS по SMS

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); 

Я хочу, чтобы вставить вызов функции для отображения значимой даты и времени строку вместо числа миллисекунд извлекается из БД. Мой функциональный код:

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; 
    } 

Любая попытка вызова функции компиляции, но приложение аварийно завершает работу. Как подключить функцию?

ответ

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; 
    } 

Надеется, что это будет полезно для кого-то.