• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dynamiczne tworzenie przycisku w widgetcie [Android Java]

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
147 wizyt
pytanie zadane 14 stycznia 2020 w Java przez smokolisz Mądrala (6,340 p.)

Cześć, tworze aplikację z widgetem na androida. Potrzebuję dynamicznie dodawać lub usuwać przyciski w widgecie.

Mam taki kod klasy Widget.java:

package com.fxteam.malcome;

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.widget.RemoteViews;
import android.widget.Button;

import android.view.View;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

import android.util.Log;

public class Widget extends AppWidgetProvider {

    private static final String SYNC_CLICKED    = "malcome_widget_button";

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        for (int appWidgetId : appWidgetIds) {
            Intent intent2 = new Intent(context, MainActivity.class);
            intent2.putExtra("accountID", "0");
            PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent2, 0);
            RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.simple_app_widget); 
            views.setOnClickPendingIntent(R.id.malcome_widget_button, pendingIntent);
            appWidgetManager.updateAppWidget(appWidgetId, views);
        }



        Button myButton = new Button(context);
        myButton.setText("Push Me");

        LinearLayout ll = (LinearLayout)findViewById(R.id.widget_layout); // <--- error here
        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        ll.addView(myButton, lp);
    }
}

Ten kod powinien dodać przycisk:

Button myButton = new Button(context);
myButton.setText("Push Me");

LinearLayout ll = (LinearLayout)findViewById(R.id.widget_layout); // <--- błąd
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);

Niestety dostaje taki błąd

cannot find symbol
        LinearLayout ll = (LinearLayout)findViewById(R.id.widget_layout);
                                        ^
  symbol:   method findViewById(int)

Wiecie może jak to naprawić?

1 odpowiedź

0 głosów
odpowiedź 15 stycznia 2020 przez bartzdev Użytkownik (780 p.)

Ani w twojej klasie, ani w klasie, po której Twoja klasa dziedziczy, nie występuje metoda findViewById. 

Podobne pytania

0 głosów
0 odpowiedzi 86 wizyt
pytanie zadane 8 listopada 2019 w HTML i CSS przez Lodomir Początkujący (480 p.)
0 głosów
0 odpowiedzi 291 wizyt
0 głosów
1 odpowiedź 312 wizyt
pytanie zadane 10 maja 2015 w Inne języki przez Dissio Mądrala (5,830 p.)

93,440 zapytań

142,431 odpowiedzi

322,678 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...