不止一个小部件可以执行不同的操作 - Android App

时间:2012-03-30 22:53:55

标签: android

所以简单地说,我有一个小部件,它只是一个大按钮,点击它就可以做一些事情。这很好用,但我现在想要为应用添加更多小部件,它们都只是一个按钮,但每个按钮时都需要做其他事情。 到目前为止,我已经厌倦了复制我已经拥有的代码,但似乎当我点击其中一个小部件时,我先点击所有小部件,然后再做同样的事情。

所以真的我的问题是如何更改代码以允许许多小部件,或者是否有更好的代码我应该使用(此代码来自指南并且已经完成工作,我绝不是Android专家)

这是我现在的代码。

    import java.util.Arrays;


import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.RemoteViews;
import android.widget.Toast;

public class ExampleAppWidgetProvider extends AppWidgetProvider {
    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
    }

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        final int N = appWidgetIds.length;

        Log.i("ExampleWidget",  "Updating widgets " + Arrays.asList(appWidgetIds));

        // Perform this loop procedure for each App Widget that belongs to this
        // provider
        for (int i = 0; i < N; i++) {
            int appWidgetId = appWidgetIds[i];

            // Create an Intent to launch ExampleActivity
            Intent intent = new Intent(Intent.ACTION_MAIN);
            intent.setComponent(new ComponentName("jackpal.androidterm", "jackpal.androidterm.Term"));
            intent.putExtra("jackpal.androidterm.iInitialCommand", "su \n cd sdcard/backtrack \n sh backtrack.sh");
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

            // Get the layout for the App Widget and attach an on-click listener
            // to the button
            RemoteViews views = new RemoteViews(context.getPackageName(),
                    R.layout.widget1);
            views.setOnClickPendingIntent(R.id.button, pendingIntent);

            // To update a label

            // Tell the AppWidgetManager to perform an update on the current app
            // widget
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }
    }
}

1 个答案:

答案 0 :(得分:1)

相信你想要做的是向R.layout.widget1添加更多按钮,然后从每个按钮的Intent intent = new ...开始复制代码,将意图更改为推出别的东西。 最好的问候。