0

この問題について他の人が尋ねた多くの質問を検索しましたが、すべてが混乱し、役に立ちませんでした。

私の問題は、アプリのウィジェットを作成し、正常に起動することですが、イベントに反応しません。ウィジェットに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);
}


 }

何が問題と思われるか知っている人はいますか?Service が更新を行う他のソリューションを見てきましたが、ボタンが 2 つあるため、そのようなことは必要ありません。他のコードが必要な場合は、提供します。

編集:

上記のコードの何が問題なのかわからない場合は、ウィジェットにボタンリスナー/イベントを実装する方法について、誰かが私に教えたり、サンプルコードを提供したりできます。

4

1 に答える 1