所以我试图通过按下小部件来开始活动。我一直遇到错误“方法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); }
}
答案 0 :(得分:1)
您需要在AppWidgetProvider类中实现onUpdate()和onReceive()方法,如下所示:
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()方法以接收待处理的意图并启动相关活动:
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);
}
}
答案 1 :(得分:0)
您将此代码放入哪种方法? AppWidgetProvider
没有startActivity()
方法。你需要一个Context
。几个AppWidgetProvider
的回调方法允许您访问Context
对象,但这一切都取决于您打算做什么。
我建议您查看有关AppWidgets here的Android开发人员指南的文档。