如何解决如何在Android窗口小部件中使用listView?
我正在尝试使用listView创建小部件,我遵循android文档和this code。 我只是尝试在listView中显示任何文本,但我什么也没得到。谁能教我如何实现listView并将数据显示到小部件中?谢谢
NewAppWidget.java
public class NewAppWidget extends appwidgetprovider {
static void updateAppWidget(Context context,AppWidgetManager appWidgetManager,int appWidgetId) {
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.new_app_widget);
views.setTextViewText(R.id.appwidget_id,String.valueOf(appWidgetId));
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId,views);
}
@Override
public void onUpdate(Context context,int[] appWidgetIds) {
// There may be multiple widgets active,so update all of them
for (int appWidgetId : appWidgetIds) {
RemoteViews views = new RemoteViews(
context.getPackageName(),R.layout.new_app_widget
);
Intent intent = new Intent(context,MyWidgetRemoteViewsService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,appWidgetId);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
views.setRemoteAdapter(R.id.widget_list,intent);
appWidgetManager.updateAppWidget(appWidgetId,views);
updateAppWidget(context,appWidgetManager,appWidgetId);
}
}
@Override
public void onEnabled(Context context) {
// Enter relevant functionality for when the first widget is created
}
@Override
public void ondisabled(Context context) {
// Enter relevant functionality for when the last widget is disabled
}
}
MyWidgetRemoteViewsFactory.java
public class MyWidgetRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory {
private Context context;
private int appWidgetId;
private List<String> widgetList = new ArrayList<String>();
private ArrayList<String> eventList= new ArrayList<>();
public MyWidgetRemoteViewsFactory(Context applicationContext,Intent intent) {
context = applicationContext;
appWidgetId=intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID);
Log.d("AppWidgetID",String.valueOf(appWidgetId));
}
private void updateWidgetListView() {
widgetList.add("!");
widgetList.add("!!");
widgetList.add("!!!");
}
// String[] widgetFruitsArray = dbhelper.retrieveFruitsList();
// List<String> convertedToList = new ArrayList<String>(Arrays.asList(widgetFruitsArray));
@Override
public void onCreate() {
updateWidgetListView();
}
@Override
public void onDataSetChanged() {
updateWidgetListView();
}
@Override
public void onDestroy() {
widgetList.clear();
}
@Override
public int getCount() {
return widgetList.size();
}
@Override
public RemoteViews getViewAt(int position) {
Log.d("WidgetCreatingView","WidgetCreatingView");
RemoteViews remoteView = new RemoteViews(context.getPackageName(),R.layout.widget_list_row);
Log.d("Loading",widgetList.get(position));
remoteView.setTextViewText(R.id.eventID,widgetList.get(position));
return remoteView;
}
@Override
public RemoteViews getLoadingView() {
return null;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public boolean hasstableIds() {
return true;
}
}
MyWidgetRemoteViewsService.java
public class MyWidgetRemoteViewsService extends RemoteViewsService {
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
return new MyWidgetRemoteViewsFactory(this.getApplicationContext(),intent);
}
}
AndroidManifest.xml
<service
android:name=".MyWidgetRemoteViewsService"
android:enabled="true"
android:exported="true">
android:permission="android.permission.BIND_REMOTEVIEWS">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。