Android小部件:如何在小部件上的按钮上设置监听器?

时间:2013-05-24 11:36:08

标签: android events button widget

我在其他人询问有关此问题的许多问题之间进行了搜索,所有这些问题都令人困惑,没有帮助。

我的问题是我为应用程序制作小部件,它启动正常,但它不会对事件做出反应。小工具上有2个按钮。这是实现它的类的源代码。

public class MediaPlayerWidget extends AppWidgetProvider {
public static final String NEXT_SONG = "1";
public static final String PLAY_PAUSE = "2";
private MediaPlayerActivity act=new MediaPlayerActivity();

private void addEvents(Context ctxt) {
    Intent intent = new Intent(ctxt, MediaPlayerWidget.class);
    intent.setAction(PLAY_PAUSE);
    PendingIntent pi = PendingIntent.getBroadcast(ctxt, 0, intent, 0);
    RemoteViews views = new RemoteViews(ctxt.getPackageName(),
            R.layout.widget_layout);
    views.setOnClickPendingIntent(R.id.widget_play, pi);
    intent=new Intent(ctxt,MediaPlayerWidget.class);
    intent.setAction(NEXT_SONG);
    pi=PendingIntent.getBroadcast(ctxt, 0, intent, 0);
    views.setOnClickPendingIntent(R.id.widget_next, pi);
}

@Override
public void onReceive(Context ctxt,Intent i){
    String cmp=i.getAction();
    if(cmp.equals(NEXT_SONG)){
        act.nextSong();
    }else if(cmp.equals(PLAY_PAUSE)){
        act.playPause();
    }
}

@Override
public void onUpdate(Context ctxt, AppWidgetManager mgr, int[] appWidgetIds) {
    addEvents(ctxt);
}


 }

有谁知道这似乎是什么问题?我已经看到一些其他解决方案,服务正在刷新,但由于我有2个按钮,我不需要这样的东西。如果需要任何其他代码,我将提供它。

编辑:

如果您不知道上面的代码有什么问题,可以有人告诉我或者提供一些关于如何在小部件中实现按钮监听器/事件的示例代码。

1 个答案:

答案 0 :(得分:2)

一些可能的解决方案: 1)检查清单是否已注册接收者。

2)尝试为每个动作创建不同的意图对象。

我有类似的问题解决了。如果这两个不起作用,请发布更多关于您的代码的内容,我会尽力提供帮助。