2013-11-24 3 views
1

버튼과 textView 만있는 간단한 위젯을 만들었습니다. 내 위젯을 처음으로 홈 화면에 추가하면 FC 메시지와 위젯이 추가됩니다. 버튼 클릭 토스트 메시지가 작동하지 않습니다. 위젯 버튼을 클릭 할 때만 축배 메시지가 필요합니다. 튜토리얼을 많이 읽었지만 문제가 무엇인지 파악할 수 없었습니다. help..really help..Thanks을 appriciate하고 싶은 모든 천재 ..Android 위젯 버튼 클릭 토스트 Maessage

widgetProvider.java

public class widgetProvider extends AppWidgetProvider{ 

    @Override 
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]; 

     Intent intent = new Intent(context, widgetProvider.class); 
     intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 

     RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widgetlayout); 
     views.setOnClickPendingIntent(R.id.button1, pendingIntent); 

     appWidgetManager.updateAppWidget(appWidgetId, views); 
    } 
} 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(AppWidgetManager.ACTION_APPWIDGET_UPDATE)) { 
      Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show(); 
      } 
    } 

}

의 AndroidManifest.xml

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <receiver android:name=".widgetProvider" android:label="@string/app_name"> 
     <intent-filter > 
      <action 
       android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
     </intent-filter> 

     <meta-data 
      android:name="android.appwidget.provider" 
      android:resource="@xml/widgetprovider" /> 
    </receiver> 

</application> 
+0

먼저 예외는 무엇입니까? – Ran

+0

메시지가 "불행히도 A_Widget이 중지되었습니다." 위젯은 홈 화면에 추가됩니다. – rzshss

답변

3

당신의 onUpdate onReceive 메서드를 재정의 한 이후로 호출되지 않습니다.

+0

도움을 주셔서 감사합니다 ..하지만 용서해주세요 .. 어떻게해야합니까 ... 어떻게 onReceive 전에 onUpdate를 호출합니까. – rzshss

+1

만약 당신이 행동하지 않는다면 당신은'super.onReceive'를 호출해야합니다. 또한 의도의 동작이 null 일 수 있기 때문에 예외가 있다고 생각합니다. – Ran

+0

THanks ..it worked .. – rzshss