2013-01-12 11 views
13

ListViewをクリックしたときにユーザーがアクティビティを起動できるようにするListViewウィジェットで作業しています。私はこれについてのチュートリアルを見つけることができませんでしたので、誰かが正しい方向に私を指すことができ、おそらくいくつかのコードを共有することができますか?どのListItemがクリックされたかに関係なく、同じアクティビティを起動したいので問題ありません。ウィジェットを押したときにAndroidのアクティビティが開始されるListView item

すべてのご協力ありがとうございます。

答えて

35

hereを見て、副題にスクロールして、個々のアイテムに振る舞いを追加する

あなたは、あなたのRemoteViewsService.RemoteViewsFactory実装からあなたのAppWidgetProvidersetOnClickFillInIntent()から両方setPendingIntentTemplate()を呼び出すことを確認する必要があります。例えば

:私はそれがやや難しい(方向性をhereを参照)することが分かっが

public class Widget extends AppWidgetProvider { 

    // ... 

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

     for(int i = 0; i < appWidgetIds.length; i++){ 

      RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.widget); 

      Intent startActivityIntent = new Intent(context, myActivity.class); 
      PendingIntent startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
      widget.setPendingIntentTemplate(R.id.list_view, startActivityPendingIntent); 

      appWidgetManager.updateAppWidget(appWidgetIds[i], widget); 

      // ... 
    } 
} 

public class WidgetAdapter implements RemoteViewsService.RemoteViewsFactory { 

    // ... 

    @Override 
    public RemoteViews getViewAt(int position) { 

    RemoteViews widgetRow = new RemoteViews(context.getPackageName(), R.layout.widget_row); 

     Intent fillInIntent = new Intent(); 
     fillInIntent.putExtra(Widget.EXTRA_LIST_VIEW_ROW_NUMBER, position); 
     widgetRow.setOnClickFillInIntent(R.id.list_view_row, fillInIntent); 

     // ... 

     return row; 
    } 
} 

は、SDK samplesであるStackWidgetサンプルでより決定的例があります。それはToastメッセージを表示する意図を作成しますが、同じコードを使用します。

+0

私はこれがより簡単だと思う:http://stackoverflow.com/a/20774402/878126 –

+0

私のために働いた唯一のもの。ありがとうございます – IHeartAndroid

+0

それはListViewのすべてのデータを取得するようだので、あなたはputted正しい余分を返さないの活動に行くとき。これを解決するには? – natsumiyu

-8

アクティビティを起動するには、インテントを作成し、そのインテントに対してstartActivityを呼び出します。インテントとstartActivityをチェックして、自分でそれを実行できると確信しています。

+0

もちろん、私は通常の方法でアクティビティを起動する方法を知っています。通常のPendingIntentは機能しないので、ListViewウィジェットでどのように行うのかと思います。 – SweSnow

関連する問題