2012-10-02 55 views
5

我想在主屏幕小部件上設置文本。 我正在使用remoteView來歸檔這個,但是當我運行應用程序時它不顯示文本。 文本需要在一個TextView(標記爲「更新「)設置如何在小部件的文本視圖上設置文本

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

回答

17

試試下面的代碼設置文本。

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

您必須製作一個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> 

它將打印窗口小部件中的文本

+0

完成工作 – Ndupza

-1

相反試試這個代碼爲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

我正在使用小部件,而不是活動...對不起,不澄清 – Ndupza

相關問題