Ich entwickle und Android-Widget und ich mag, dass Widget singulär sein, was bedeutet, wenn der Benutzer meinen Widget auf seinen Home-Bildschirm hinzugefügt er nicht in der Lage sein sollte, um es hinzuzufügen wieder zu seinem BildschirmMake Singular Android Widget
0
A
Antwort
1
es gibt eine Abhilfe Sie könnten versuchen, dies zu tun:
1) erstellen Sie einen öffentlichen statischen Integer-Variable in Sie Spur des Widgets Id AppWidgetProvider zu halten, es anfänglich
2 auf null) erstellen Sie eine Konfigurations Aktivität für das Widget (Anweisungen dafür sind hier https://developer.android.com/guide/topics/appwidgets/index.html#Configuring)
3) Überprüfen Sie in Ihrer Konfigurationsaktivität den Status der Variablen im Provider. Wenn ein Widget bereits erstellt wurde (die ID ist nicht gleich null), können Sie dem Benutzer eine Nachricht mit einem AlertDialog anzeigen und dann das Ergebnis als abgebrochen festlegen.
Code könnte wie folgt aussehen:
In Ihrem Provider:
public class MyAppWidgetProvider extends AppWidgetProvider {
public static Integer widgetId;
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
//If the current widget has been deleted, set widget id to null again
for(int i = 0; i < appWidgetIds.length; i++){
if(widgetId == appWidgetIds[i]){
widgetId = null;
}
}
super.onDeleted(context, appWidgetIds);
}
}
In Ihrer Konfiguration Aktivität
public class ConfigurationActivity extends Activity {
public int appWidgetId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
}
if(MyAppWidgetProvider.widgetId != null){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Widget already created");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_CANCELED, resultValue);
finish();
}
});
AlertDialog dialog = builder.create();
dialog.show();
} else {
MyAppWidgetProvider.widgetId = appWidgetId;
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);
finish();
}
}
}
Verwandte Themen
- 1. Make Tkinter Widget Fokus nehmen
- 2. make Liste android
- 3. Android Widget Größe ändern
- 4. Lollipop android Sperrbildschirm Widget
- 5. Spinner Android Widget Größe
- 6. Android Widget Größe
- 7. Android Widget Arc Progress
- 8. Resizable Widget Android
- 9. Android - Akkordeon-Widget
- 10. Android: ActionBarSherlock Suche Widget
- 11. Android Musik-Player-Widget
- 12. Android Widget mit AsyncTask
- 13. Dapper Verwendung singular Tabellenname
- 14. make Statusleiste Kitkat Durchlässiger android
- 15. Make Text float-rechts in Android
- 16. ImageVIEW in Widget Android aktualisieren
- 17. ImageButton in Android HomeScreen Widget
- 18. Android Widget: OnClickPendingIntent funktioniert nicht
- 19. Probleme mit Android-pulltorefresh Widget
- 20. Android BroadcastReceiver nicht aktualisieren Widget
- 21. Android Widget wird nicht aktualisiert
- 22. Android API 21 - TimePicker Widget
- 23. Android-Widget kann nicht Hintergrundfarbe
- 24. Force Android Widget zu aktualisieren
- 25. Android Widget mit Xamarin Forms?
- 26. android Galerie Widget unendlich scroll
- 27. android widget mit mehreren tasten
- 28. Zeichnen Leinwand auf Widget Android
- 29. Android Widget zur Eingabe Dauer
- 30. Android Widget Textansicht Laufschrift Scroll
Warum würden Sie den Benutzer auf diese Weise einschränken wollen, wie ein Gute Faustregel, hindern Sie Ihre Benutzer NICHT daran, Dinge zu tun, die sie tun möchten, oder sie werden eine andere Anwendung finden, die das für sie tut, ihnen hilft und ihnen die Dinge leichter macht, so halten und vergrößern Sie Ihre Benutzerdatenbank y unsere App :) – erbsman
Die Verwendung von mehr als Widget aus meiner App kann massiven Schaden für meine Anwendung verursachen! – enGMzizo