2012-10-02 20 views
5

Sto provando a impostare il testo su un widget della schermata iniziale. sto usando remoteView per archiviare questo, ma non mostra il testo quando eseguo l'applicazione. Il testo deve essere impostato su un TextView (l'etichetta 'aggiornamento ")Come impostare il testo sulla vista testo di un widget

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"); 
    } 
} 

risposta

17

prova sotto il codice.

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); 

devi creare un file 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> 

stamperà il testo nel widget

+0

ho finito il lavoro – Ndupza

-1

Invece provare questo codice per impostare il testo per la 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

sto lavorando con i widget, non le attività ... mi dispiace per non aver chiarito – Ndupza

Problemi correlati