我如何启动与民政窗口小部件的活动 [英] How Do I Launch an Activity with Home Widget
本文介绍了我如何启动与民政窗口小部件的活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:
<一href="http://stackoverflow.com/questions/2706464/how-to-launch-activity-from-android-home-screen-widget">How从Android主屏幕小部件推出的活动
请告诉我最简单的code启动从应用程序的主界面窗口小部件的活动?
在code我至今不工作,并没有显示在LogCat中..?
该构件具有在它的形象,当图像被窃听,应当启动应用程序。寻找一个片段。
公共类进myWidget扩展AppWidgetProvider
{
//创建一个Intent从ImageView的发射活动
@覆盖
公共无效onEnabled(上下文的背景下)
{
意向意图=新的意图(Intent.ACTION_MAIN,NULL);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
组件名排版=新单元名(context.getPackageName(),MyWidget.class.getName());
intent.setComponent(CN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent myPI = PendingIntent.getActivity(上下文,0,意图,0);
RemoteViews意见=新RemoteViews(context.getPackageName(),R.layout.content); //&LT; -THE布局W /我的MainActivity类?
views.setOnClickPendingIntent(R.id.widgetLauncher,myPI); //&LT; -THE ImageView的ID?
AppWidgetManager经理= AppWidgetManager.getInstance(上下文);
mgr.updateAppWidget(样稿,意见);
}
}
控件布局:
&LT; RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:方向=垂直&GT;
&LT; ImageView的
机器人:ID =@ + ID / widgetLauncher
机器人:layout_width =258dp
机器人:layout_height =54dp
机器人:layout_centerInParent =真
机器人:SRC =@可绘制/ wgt_logo&GT;
&LT; / ImageView的&GT;
&LT; / RelativeLayout的&GT;
解决方案
这最后的工作:
公共类进myWidget扩展AppWidgetProvider
{
//创建一个Intent推出活动
@覆盖
公共无效的OnUpdate(上下文的背景下,AppWidgetManager appWidgetManager,INT [] appWidgetIds)
{
super.onUpdate(背景下,appWidgetManager,appWidgetIds);
RemoteViews remoteViews =新RemoteViews(context.getPackageName(),R.layout.home_widget);
//当我们单击窗口小部件,我们要打开我们的主要活动。
意图launchActivity =新的意图(背景下,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(上下文,0,launchActivity,0);
remoteViews.setOnClickPendingIntent(R.id.widget,pendingIntent);;
组件名thisWidget =新的组件名(背景下,MyWidget.class);
AppWidgetManager经理= AppWidgetManager.getInstance(上下文);
manager.updateAppWidget(thisWidget,remoteViews);
}
}
Possible Duplicate:
How to launch activity from android home screen widget
Whats the simplest code to launch an activity from the applications home-screen widget?
The code I have so far doesnt work and nothing shows in LogCat..??
The widget has an image within it and when the image is tapped, should launch the application. Looking for a snippet.
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);
}
}
Widget Layout:
<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>
解决方案
This finally worked:
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);
}
}
这篇关于我如何启动与民政窗口小部件的活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文