我有一个小部件,当用户点击小部件时,我想打开一个新窗口。 有人可以告诉我怎么做,你能给我一些代码吗? 我目前正在学习如何使用java在Eclipse中制作Android应用程序。 提前谢谢!
答案 0 :(得分:0)
您可以通过添加
使任何视图可点击android:clickable="true"
到xml或通过调用
view.setClickable(true);
在java中。 见documentation
然后您可以指定on click listener来执行您想要的任何操作。
答案 1 :(得分:0)
更改扩展AppWidgetProvider
的类。您可以看到basic example用于停止简单小部件。因此,您可以在类中检测扩展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);
}
我看到了您正在使用的link ..您可以将以上代码放在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);
}
查看this教程以供参考。
答案 2 :(得分:-1)
在我的代码中为新窗口制作另一项活动 seconhdActivity
在你的小部件的onclickevent中使用我在我的代码中使用的意图
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);
}
});
}
}