2012-10-02 15 views
5

Próbuję ustawić tekst na widżecie ekranu głównego. Używam remoteView do archiwizowania tego, ale nie wyświetla tekstu po uruchomieniu aplikacji. Tekst musi być ustawiony na TextView (oznaczonych jako „Update")Jak ustawić tekst w widoku tekstowym widgetu

public class MyWidgetProvider extends AppWidgetProvider 
{  
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) 
    { 
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout); 
    views.setTextViewText(R.id.update, "Hellow"); 
    } 
} 

Odpowiedz

17

try poniżej kodu.

static void updateAppWidget(Context context, 
       AppWidgetManager appWidgetManager, int appWidgetId) { 

      DateFormat format = SimpleDateFormat.getTimeInstance(
        SimpleDateFormat.MEDIUM, Locale.getDefault()); 
      CharSequence text = format.format(new Date()); 


      Intent intent = new Intent(context, UpdateService.class); 
      PendingIntent pendingIntent = PendingIntent.getService(context, 0, 
        intent, 0); 


      RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
        R.layout.widget); 
      remoteViews.setOnClickPendingIntent(R.id.LinearLayout01, pendingIntent); 

      remoteViews.setTextViewText(R.id.widget_textview, text); <---- here you can set text 

      // Tell the widget manager 
      appWidgetManager.updateAppWidget(appWidgetId, remoteViews); 

należy wykonać jeden plik xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout01" 
    android:layout_height="120dp" 
    android:layout_width="320dp" 
    android:orientation="horizontal" 
    > 

<TextView 
    android:id="@+id/widget_textview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal" 
    android:textColor="@android:color/white" 
    android:text="00:00:00 PM" 
    android:textSize="16sp" 
    android:background="#FFAADD" 
    /> 


</LinearLayout> 

to wydrukuje tekst w widgecie

+0

Mam pracę – Ndupza

-1

Zamiast próbować ten kod do ustawiania tekstu dla TextView

public class MyWidgetProvider extends Activity 
{ 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.widget_layout); 
TextView t1=(TextView)findViewById(R.id.update); 
t1.setText("Hello"); 

} 
+0

Pracuję z widżetami, nie działam ... przepraszam za nie wyjaśnianie – Ndupza

Powiązane problemy