खोज…


टिप्पणियों

SDV

घोषणापत्र -

अपने अनुप्रयोग के AndroidManifest.xml फ़ाइल में AppWidgetProvider वर्ग की घोषणा करें। उदाहरण के लिए:

<receiver android:name="ExampleAppWidgetProvider" >
<intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
           android:resource="@xml/example_appwidget_info" />
</receiver>

मेटाडाटा

res/xml में AppWidgetProviderInfo मेटाडेटा जोड़ें:

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure"
    android:resizeMode="horizontal|vertical"
    android:widgetCategory="home_screen">
</appwidget-provider>

AppWidgetProvider वर्ग

सबसे महत्वपूर्ण AppWidgetProvider कॉलबैक onUpdate() । यह कहा जाता है कि हर बार एक ऐपविद को जोड़ा जाता है।

public class ExampleAppWidgetProvider extends AppWidgetProvider {

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

        // 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(context, ExampleActivity.class);
            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.appwidget_provider_layout);
            views.setOnClickPendingIntent(R.id.button, pendingIntent);

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

onAppWidgetOptionsChanged() को कहा जाता है जब विजेट रखा जाता है या आकार बदल दिया जाता है।

विजेट हटाए जाने पर onDeleted(Context, int[]) कहा जाता है।

अलग-अलग लेआउट की घोषणा के साथ दो विजेट

  1. एक घोषणा फ़ाइल में दो रिसीवर घोषित करें:
<receiver
    android:name=".UVMateWidget"
    android:label="UVMate Widget 1x1">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/widget_1x1" />
</receiver>
<receiver
    android:name=".UVMateWidget2x2"
    android:label="UVMate Widget 2x2">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/widget_2x2" />
</receiver>
  1. दो लेआउट बनाएँ
    • @xml/widget_1x1
    • @xml/widget_2x2
  2. विस्तारित व्यवहार के साथ UVMateWidget वर्ग से उपवर्ग UVMateWidget2x2 घोषणा करें:
package au.com.aershov.uvmate;

import android.content.Context;
import android.widget.RemoteViews;

public class UVMateWidget2x2 extends UVMateWidget {

    public RemoteViews getRemoteViews(Context context, int minWidth,
                                      int minHeight) {

        mUVMateHelper.saveWidgetSize(mContext.getString(R.string.app_ws_2x2));
        return new RemoteViews(context.getPackageName(), R.layout.widget_2x2);
    }
}

Android स्टूडियो का उपयोग करके बुनियादी विजेट बनाएँ / एकीकृत करें

नवीनतम एंड्रॉइड स्टूडियो आपके एप्लिकेशन में 2 चरणों में एक मूल विजेट बनाएगा और एकीकृत करेगा।

आपके आवेदन पर अधिकार ==> नया ==> विजेट ==> ऐप विजेट

यहाँ छवि विवरण दर्ज करें

यह नीचे की तरह एक स्क्रीन दिखाएगा और फ़ील्ड भरें

यहाँ छवि विवरण दर्ज करें

हॊ गया।

यह आपके एप्लिकेशन में एक मूल HelloWorld विजेट (लेआउट फ़ाइल, मेटा डेटा फ़ाइल, घोषणापत्र फ़ाइल में घोषणा सहित) का निर्माण और एकीकरण करेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow