使用小部件作为按钮 - android eclipse

时间:2013-09-28 04:09:48

标签: android eclipse button widget

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

3 个答案:

答案 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);

        }
    });

}

}