0

我的小部件上有 2 个按钮。
putExtra为两者添加了不同的布尔标志。
我正在尝试解析getExtra主要活动。
但是当我点击它们中的任何一个时,它们的效果完全一样(这不是我所期望的)。

看看下面的代码,我做错了什么?

部分代码来自mainActivity

 @Override
    protected void onNewIntent(Intent intent) {
        //called when the activity is relaunched by a new intent
        setIntent(intent);
        super.onNewIntent(intent);
    }



@Override
public void onResume() {

    super.onResume();
    Intent testI = getIntent();
    Bundle test = testI.getExtras();
    if (test != null) {
        boolean select = test.getBoolean("selectcontact",false);
        if (select == true) {
            pickContact();
        }
    }
}

AppWidgetProvider(onUpdate函数)的部分代码

        Intent mainIntent = new Intent(ctxt, MainActivity.class);
        Bundle bundle = new Bundle();
        bundle.putBoolean("selectcontact", true);
        mainIntent.putExtras(bundle);
        PendingIntent pendingIntent = PendingIntent.getActivity(ctxt, 0, mainIntent, 0);
        widget.setOnClickPendingIntent(R.id.buttonAddwidget, pendingIntent);

        Intent mainIntentE = new Intent(ctxt, MainActivity.class);
        PendingIntent pendingIntentE = PendingIntent.getActivity(ctxt, 0, mainIntentE, 0);
        widget.setOnClickPendingIntent(R.id.buttonEditwidget, pendingIntentE);
4

2 回答 2

0

对于 2 个意图,您使用相同的 ID。尝试使用不同的:

PendingIntent pendingIntent  = PendingIntent.getActivity(ctxt, 0, mainIntent, 0);
PendingIntent pendingIntentE = PendingIntent.getActivity(ctxt, 1, mainIntentE, 0);
于 2014-08-28T08:59:19.263 回答
0
// replace this code
@Override
public void onResume() {

    super.onResume();
    Intent testI = getIntent();
    Bundle test = testI.getExtras();
    if (test.getBoolean("selectcontact",false)) {
            pickContact();
    }
}
于 2013-09-19T11:06:42.163 回答