MainActivity 类型未定义方法 getParcelableArrayList(String)
The method getParcelableArrayList(String) is undefined for the type MainActivity
我想通过使用 Parcelable 接口将数据从我的 BroadcastReceiverListener class 中的 onReceive()
传递到 MainActivity 中的 onNewIntent()
方法。我怎样才能让它工作?以及如何获取 onNewIntent()
中的数据?
感谢任何帮助。
BroadcastReceiverListener class:
public class BroadcastReceiverListener extends BroadcastReceiver implements
Parcelable {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(
android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
final List<ScanResult> results = wifiManager.getScanResults();
if (results != null) {
ArrayList<ScanResult> updatedResults = new ArrayList<ScanResult>();
for (int i = 0; i < results.size(); i++) {
String ssid = results.get(i).SSID;
if (ssid.startsWith("KD")) {
updatedResults.add(results.get(i));
}
}
Intent updateIntenet = new Intent(context, MainActivity.class);
updateIntenet.putParcelableArrayListExtra("broadcast_event",
updatedResults);
context.startActivity(updateIntenet);
}
}
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
}
}
这个方法在MainActiity中:
@Override
protected void onNewIntent(Intent intent) {
String intentResult = intent.getStringExtra("broadcast_event");
if (intentResult != null) {
List<ScanResult> results = getParcelableArrayList(intentResult);
String a = deliverBestAccessPoint(results);
textWifi.setText(a.toString());
} else {
textWifi.setText("No route is available.");
}
}
您应该根据收到的意图调用 getParcelableArrayListExtra:
List<ScanResult> results = intent.getParcelableArrayListExtra("broadcast_event");
我想通过使用 Parcelable 接口将数据从我的 BroadcastReceiverListener class 中的 onReceive()
传递到 MainActivity 中的 onNewIntent()
方法。我怎样才能让它工作?以及如何获取 onNewIntent()
中的数据?
感谢任何帮助。
BroadcastReceiverListener class:
public class BroadcastReceiverListener extends BroadcastReceiver implements
Parcelable {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(
android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
WifiManager wifiManager = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
final List<ScanResult> results = wifiManager.getScanResults();
if (results != null) {
ArrayList<ScanResult> updatedResults = new ArrayList<ScanResult>();
for (int i = 0; i < results.size(); i++) {
String ssid = results.get(i).SSID;
if (ssid.startsWith("KD")) {
updatedResults.add(results.get(i));
}
}
Intent updateIntenet = new Intent(context, MainActivity.class);
updateIntenet.putParcelableArrayListExtra("broadcast_event",
updatedResults);
context.startActivity(updateIntenet);
}
}
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
}
}
这个方法在MainActiity中:
@Override
protected void onNewIntent(Intent intent) {
String intentResult = intent.getStringExtra("broadcast_event");
if (intentResult != null) {
List<ScanResult> results = getParcelableArrayList(intentResult);
String a = deliverBestAccessPoint(results);
textWifi.setText(a.toString());
} else {
textWifi.setText("No route is available.");
}
}
您应该根据收到的意图调用 getParcelableArrayListExtra:
List<ScanResult> results = intent.getParcelableArrayListExtra("broadcast_event");