我有一个小部件,当用户单击小部件时,我想打开一个新窗口。有人可以告诉我如何做到这一点,你能给我一些代码吗?我目前正在学习如何使用 java 在 Eclipse 中制作 android 应用程序。提前致谢!
问问题
350 次
3 回答
0
更改扩展的类。您AppWidgetProvider
可以看到创建简单小部件的基本示例。因此,您可以在扩展 AppWidgetProvider 的类中检测小部件的点击事件。在这里, MyWidgetProvider 是一个将在后台运行的服务。
public class MyWidgetProvider extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widgetview);
remoteViews.setOnClickPendingIntent(R.id.widgetlayout1, buildButtonPendingIntent(context));
pushWidgetUpdate(context, remoteViews);
}
public static PendingIntent buildButtonPendingIntent(Context context) {
Log.d("MyWidgetProvider", "click");
Intent intent = new Intent(context,secondactivity.class);// Add secondactivity to Manifest
context.startActivity(intent);
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
我已经看到了您正在使用的链接。您可以将上面的代码放在您的LovelyBatteryWidget
班级中。
编辑
public static void pushWidgetUpdate(Context context, RemoteViews remoteViews) {
ComponentName myWidget = new ComponentName(context, MyWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(myWidget, remoteViews);
}
检查本教程供您参考。
于 2013-09-28T04:29:25.217 回答
-1
在我的代码中为新窗口创建另一个活动是 seconhdActivity
在您的小部件的 onclickevent 中,使用我在代码中使用的 Intent
Intent mIntent = new Intent(MainActivity.this,
SecondActivity.class);
startActivity(mIntent);
==================================================== =========================
公共类 MainActivity 扩展 Activity {
Button btnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnButton = (Button) findViewById(R.id.button1);
btnButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent mIntent = new Intent(MainActivity.this,
SecondActivity.class);
startActivity(mIntent);
}
});
}
}
于 2013-09-28T04:39:20.667 回答