2012-10-02 19 views
5

Ich versuche, Text auf einem Startbildschirm-Widget festzulegen. Ich benutze RemoteView, um dies zu archivieren, aber es zeigt nicht den Text, wenn ich die Anwendung ausführen. Der Text muss auf einem Textview (mit der Bezeichnung ‚Update") gesetzt werdenSo legen Sie Text in der Textansicht eines Widgets fest

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

Antwort

17

try Textview für die Einstellung.

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

müssen Sie eine einzige XML-Datei erstellen

<?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> 

wird es den Text in Widget drucken

+0

Got the job done – Ndupza

-1

Statt diesen Code versuchen, Text für den Code unten

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

Ich arbeite mit Widgets, keine Aktivitäten ... Entschuldigung für die Unklarheit – Ndupza

Verwandte Themen