2012-04-05 43 views
1

可能重複:
How to launch activity from android home screen widget我如何啓動一個活動與家庭的Widget

請告訴我最簡單的代碼來啓動從應用的主屏幕小部件的活動?

我到目前爲止的代碼不工作,沒有在LogCat中顯示.. ??

控件內有一個圖像,當圖像被點擊時,應該啓動應用程序。尋找一個片段。

public class MyWidget extends AppWidgetProvider 
{ 
    // Create an Intent to launch activity from ImageView 
    @Override 
    public void onEnabled(Context context) 
    { 
    Intent intent = new Intent(Intent.ACTION_MAIN, null); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 

    ComponentName comp = new ComponentName(context.getPackageName(),MyWidget.class.getName()); 
    intent.setComponent(cn); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    PendingIntent myPI = PendingIntent.getActivity(context, 0, intent, 0); 

    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.content);//<-THE LAYOUT W/I THE MainActivity CLASS?? 

    views.setOnClickPendingIntent(R.id.widgetLauncher, myPI);//<-THE IMAGEVIEW ID?? 

    AppWidgetManager mgr = AppWidgetManager.getInstance(context); 
    mgr.updateAppWidget(comp, views); 
    } 
} 

控件佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/widgetLauncher" 
     android:layout_width="258dp" 
     android:layout_height="54dp" 
     android:layout_centerInParent="true" 
     android:src="@drawable/wgt_logo" > 
    </ImageView> 

</RelativeLayout> 
+0

http://buildmobile.com/how-to-code-an-android-widget – slayton 2012-04-05 17:15:23

+0

@Colin皮卡德一直在嘗試各種方式,但沒有。查看上面添加的代碼 – CelticParser 2012-04-05 18:00:45

+0

什麼是負號?我已經完成了研究,並且我無法得到任何工作。我添加了更多的代碼。無論人們。 – CelticParser 2012-04-05 18:02:12

回答

4

這最後的工作:

public class MyWidget extends AppWidgetProvider 
{ 
    // Create an Intent to launch activity 
    @Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) 
    { 
    super.onUpdate(context, appWidgetManager, appWidgetIds); 

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.home_widget); 
    // When we click the widget, we want to open our main activity. 
    Intent launchActivity = new Intent(context, MainActivity.class); 
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, launchActivity, 0); 
    remoteViews.setOnClickPendingIntent(R.id.widget, pendingIntent);; 

    ComponentName thisWidget = new ComponentName(context, MyWidget.class); 
    AppWidgetManager manager = AppWidgetManager.getInstance(context); 
    manager.updateAppWidget(thisWidget, remoteViews); 
    } 
} 
+1

但是,這似乎爲整個小部件設置了onclick,而不僅僅是圖像?如何單擊一個單獨的事件來點擊小部件並點擊小部件中的圖像? – Yusufk 2014-07-12 12:45:47

相關問題