Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid - Widget with Scrollable Listview Manual Refresh
    primarykey
    data
    text
    <p>I googled and found the code to manipulate listview data using <strong>RemoteViewsService</strong> and <strong>RemoteViewsService.RemoteViewsFactory.</strong> as below</p> <pre><code>Intent svcIntent = new Intent(context, WidgetService.class); svcIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,appWidgetIds[i]); svcIntent.setData(Uri.parse(svcIntent.toUri(Intent.URI_INTENT_SCHEME))); RemoteViews widget = new RemoteViews(context.getPackageName(),R.layout.widget_layout); widget.setRemoteAdapter(appWidgetIds[i], R.id.lstAppointments,svcIntent); </code></pre> <p>WidgetService.java contains</p> <pre><code>public class WidgetService extends RemoteViewsService { @Override public RemoteViewsFactory onGetViewFactory(Intent intent) { return (new WidgetViewsFactory(this.getApplicationContext(), intent)); } public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return super.onBind(intent); } } </code></pre> <p>and wrote all the codes for fetching data from webservice in onCreate of <strong>WidgetViewsFactory implements RemoteViewsService.RemoteViewsFactory</strong></p> <p>For updating records manually or automatically every 5seconds, I found Update via Service methods as below mentioned</p> <pre><code>public class WordWidget extends AppWidgetProvider { static int value = 1; Handler handler = new Handler(); MyRunnable myRunnable; @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // To prevent any ANR timeouts, we perform the update in a service myRunnable = new MyRunnable(context); handler.postDelayed(myRunnable, 1000); } class MyRunnable implements Runnable { Context context; public MyRunnable(Context context) { this.context = context; } public void run() { context.startService(new Intent(context, UpdateService.class)); handler.postDelayed(myRunnable, 1000); } } public static class UpdateService extends Service { @Override public void onStart(Intent intent, int startId) { // Build the widget update for today RemoteViews updateViews = buildUpdate(this); // Push update for this widget to the home screen ComponentName thisWidget = new ComponentName(this, WordWidget.class); AppWidgetManager manager = AppWidgetManager.getInstance(this); manager.updateAppWidget(thisWidget, updateViews); } public RemoteViews buildUpdate(Context context) { RemoteViews updateViews; // Build an update that holds the updated widget contents updateViews = new RemoteViews(context.getPackageName(), R.layout.widget_word); Log.e("value", String.valueOf(value)); updateViews.setTextViewText(R.id.word_title, "Title"); updateViews.setTextViewText(R.id.word_type, String.valueOf(value)); updateViews.setTextViewText(R.id.definition, String.valueOf(value)); value += 1; // When user clicks on widget it opens www.google.com Intent defineIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.co.in/")); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, defineIntent, 0); updateViews.setOnClickPendingIntent(R.id.widget, pendingIntent); return updateViews; } @Override public IBinder onBind(Intent intent) { // We don't need to bind to this service return null; } } } </code></pre> <p>How to update the listview automatically.. I know how to update textview as mentioned above.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload