-1

我有一个小部件,当用户单击小部件时,我想打开一个新窗口。有人可以告诉我如何做到这一点,你能给我一些代码吗?我目前正在学习如何使用 java 在 Eclipse 中制作 android 应用程序。提前致谢!

4

3 回答 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 回答
0

您可以通过添加使任何视图可点击

android:clickable="true"

到 xml 或通过调用

view.setClickable(true);

在爪哇。查看文档

然后,您可以分配一个点击监听器来执行您想要的任何操作。

于 2013-09-28T04:22:51.200 回答
-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 回答