Reputation: 780
I am trying to set text on a home screen widget. i am using remoteView to archive this, but it does not show the text when i run the application. The text needs to be set on a TextView (labelled 'Update")
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");
}
}
Upvotes: 6
Views: 13918
Reputation: 2436
try below code.
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);
you have to make a one xml file
<?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>
it will print the text in widget
Upvotes: 21
Reputation: 111
Instead try this code for setting text for the 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");
}
Upvotes: 0