我正在尝试在主屏幕小部件上设置文本。 我正在使用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");
}
}
答案 0 :(得分:20)
尝试以下代码。
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>
它将打印小部件中的文本
答案 1 :(得分:0)
而是尝试使用此代码为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");
}