无法将对象发送到意向本地广播管理器



对不起我的英语。我花了很多小时试图将一个对象从一个活动发送到另一个活动。我需要使用LocalBroadcastManager。这是我的例子:

FirsActivity:

         LocalBroadcastManager.getInstance(this).registerReceiver(mDialog,
                            new IntentFilter("list"));
        //code
            private BroadcastReceiver mDialog = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {
                    PeopleObject people=
                            (PeopleObject) getIntent().getSerializableExtra("people");
                    popupWindow(people);
                }
            };
    public void popupWindow(PeopleObject people) {
//my object PeopleObject  is null
            Toast.makeText(getApplicationContext(), people.getName(), Toast.LENGTH_SHORT).show();     
        }

第二活动:

public void startPopUp(PeopleObject object) {
//i check in debbug my object not null
        Intent intent = new Intent("list");
        intent.putExtra("people", object);
        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
    }

PeopleObject-implements Serializable

嘿,参考这段代码,我会知道如何将意图发送到活动-

private void MyaCtivity() {
Intent intent = new Intent("MyDevice");
sendLocationBroadcast(intent);
}
private void sendLocationBroadcast(Intent intent){
intent.putExtra("currentprice", currentp);
intent.putExtra("latitude", latitude);
intent.putExtra("longitude", longitude);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}

Stupit错误,我需要像这样的

private BroadcastReceiver mDialog = new BroadcastReceiver() {
                @Override
                public void onReceive(Context context, Intent intent) {
                    PeopleObject people=
                            (PeopleObject) intent.getSerializableExtra("people");
                    popupWindow(people);
                }
            };

使用intent.getSerializableExtra("people");,而不是getIntent().getSerializableExtra("people");

最新更新