我對android和編程的編程一般都很陌生。我搜索了web和stackoverflow的解決方案,但似乎無法找到一個。在片段中更新列表視圖
我有一個應用程序與片段處理不同的選項卡。我的一個片段包含一個listview。但是,listview不會更新或刷新。當我收到短信時它應該刷新。這裏是片段代碼:
短信接收其他三類的處理,接收器的代碼是:
package com.example.android.effectivenavigation;
進口...等
public class SmsReceiver extends BroadcastReceiver {
static ArrayList<SmsInfo> listSms = new ArrayList<SmsInfo>();
@Override
public void onReceive(Context context, Intent intent) {
// get SMS map from intent
Bundle extras = intent.getExtras();
// a notification message
String messages = "";
if (extras != null) {
// get array data from SMS
Object[] smsExtra = (Object[]) extras.get("pdus"); // "pdus" is the key
for (int i = 0; i < smsExtra.length; ++i) {
// get sms message
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
// get content and number
String body = sms.getMessageBody();
String adition = " SMS:: ";
String einde = " ::SMS";
String sendme = adition + body + einde;
String address = sms.getOriginatingAddress();
// create display message
messages += "SMS from " + address + " :\n";
messages += body + "\n";
//Send to Arduino
Amarino.sendDataToArduino(context, DEVICE_ADDRESS, 'T', sendme);
// store in the list
listSms.add(new SmsInfo(address, body));
}
// better check size before continue
if(listSms.size() > 0) {
// notify new arriving message
//Toast.makeText(context, messages, Toast.LENGTH_SHORT).show();
// set data to send
Intent data = new Intent(context, MainActivity.class);
// new activity
data.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
data.putParcelableArrayListExtra("ListSMS", listSms);
// start
context.startActivity(data);
}
}
}
有人能照亮我的問題? 非常感謝提前!
另外,正如您現在可能會看到現在發生的事情是,再次啓動Mainactivity.class。在應用程序的這個(第二個)產生中(當收到短信時),該列表用產生它的最後一個短信更新。然而,額外的短信不會顯示在列表中,只是在另一個新的產卵。 – c00k