2011-08-12 7 views
0

これでウィジェットを押してアクティビティを開始しようとしています。私はエラー "どのようなヘルプは非常に感謝している"タイプの写真のためのstartActivity(インテント)の定義されていないエラーに実行し続ける!私のクラスコードは以下の通りです:メソッドのstartActivity(Intent)は型に対して未定義ですか?

package com.natehoch96.widgets.iOS; 

import android.appwidget.AppWidgetProvider; 
import android.content.Intent; 


public class Photos extends AppWidgetProvider { 

    Intent myIntent = new Intent(android.provider.Settings.ACTION_SETTINGS); 
    {startActivity(myIntent); } 

} 

答えて

1

あなたがにonUpdate()とonReceive()を自分のAppWidgetProviderクラスのメソッド、このような何かを実装する必要があります:

public void onReceive(Context context, Intent intent) { 
    super.onReceive(context, intent); 

    if (intent.getAction().equals("PhotosAction") { 
     //Received photos action action, start your target activity 
     Intent i = new Intent(android.provider.Settings.ACTION_SETTINGS); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
    } 
} 
+0

ありがとう!出来た!何らかの理由でHTC Senseでの作業ができませんでしたが、私のエミュレータで動作していたため、Senseで何かが起きるかもしれません。また、代わりにPhotosアプリを起動したかったとしたら、そのシステム定義の意図をどのように把握するのか助けてくれてありがとう – natehoch96

+0

あなたはURIを持っていて、ビューアを起動したいというイメージを表示しようとしていますか?この質問を見てください:[link](http://stackoverflow.com/questions/2954594) /起動 - インテント - アクション - ビュー - インテント - 保存 - イメージ - 保存 - イメージ - ファイル)。異なるメーカーが独自のギャラリーアプリを提供する可能性があるため、あなたは「システム定義の意図」に頼ることができません。 HTC、Samsung .. – Jer

0

どのような方法でこのコードを書いていますか? AppWidgetProviderにはstartActivity()メソッドがありません。そのためにはContextが必要です。 AppWidgetProviderのコールバックメソッドのいくつかはContextオブジェクトへのアクセスを提供しますが、実際にはあなたが何をするつもりかによって異なります。

AndroidデベロッパーガイドのAppWidgets hereのドキュメントをご覧ください。

public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
    int[] appWidgetIds) { 
    final int N = appWidgetIds.length; 
    for (int i=0; i<N; i++) { 
     int appWidgetId = appWidgetIds[i]; 

     //Get the views for your widget layout 
     RemoteViews views = new RemoteViews(context.getPackageName(), 
      R.layout.my_widget); 

     //Create a pending intent for a widget click 
     Intent intent = new Intent(context, Photos.class); 
     intent.setAction("PhotosAction"); 
     PendingIntent pendingIntent = 
      PendintIntent.getBroadcast(context, 0, intent, 0); 
     views.setOnClickPendingIntent(R.id.widget_click_view, pendingIntent); 

     appWidgetManager.updateAddWidget(appWidgetId, views); 
    } 
} 

その後、保留中の意図を受信し、関連する活動を開始するためにあなたのonReceive()メソッドを記述します。

+0

私はまさにContextとは何か、そしてそれをどのように使用するのですか?私はドキュメントを見てみましたが、それは本当に私を助けてくれなかった、どんな助けも大歓迎です。おかげで – natehoch96

関連する問題