【发布时间】:2020-07-01 18:29:04
【问题描述】:
您能帮我对列表视图中显示的短信进行排序吗?我使用了 SMS Broadcast Receiver,我想将新消息显示到顶部。我想我应该使用日期对项目进行排序,但我不知道如何,下面是我的示例代码和图片谢谢!
SMSReceiver.java
public static final String SMS_BUNDLE = "pdus";
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if(intent.getAction().equalsIgnoreCase("android.provider.Telephony.SMS_RECEIVED")) {
if (bundle != null) {
Object[] sms = (Object[]) bundle.get(SMS_BUNDLE);
String smsMsg = "";
String smsdate ="";
SmsMessage smsMessage;
for (int i = 0; i < sms.length; i++) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
String format = bundle.getString("format");
smsMessage = SmsMessage.createFromPdu((byte[]) sms[i], format);
}
else {
smsMessage = SmsMessage.createFromPdu((byte[]) sms[i]);
}
String msgBody = smsMessage.getMessageBody().toString();
Long msgDate = smsMessage.getTimestampMillis();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(msgDate);
Date finaldate = calendar.getTime();
String smsDate = finaldate.toString();
Calendar messageTime = Calendar.getInstance();
smsMsg +=msgBody;
smsdate += smsDate;
}
Receive_message inst = Receive_message.Instance();
inst.receive_data(smsMsg,smsdate);
}}}}
Receive_message.java - 活动
public void receive_data (final String smsMsg, String smsdate) {
arrayAdapter = new ArrayAdapter(this, R.layout.list_item, list_items);
text_listview.setAdapter(arrayAdapter);
arrayAdapter.add(smsMsg);
arrayAdapter.notifyDataSetChanged();
【问题讨论】:
标签: android