相关疑难解决方法(0)

ArrayAdapter的getViewTypeCount和getItemViewType方法

有人可以用简单的话来解释我的用法getViewTypeCount()getItemViewType()方法ArrayAdapter吗?

android

156
推荐指数
3
解决办法
6万
查看次数

主屏幕小部件,listView显示"正在加载"

首先,图像说千言万语:

在此输入图像描述

虽然getViewAt被称为4项,但是我的光标大小是这样的.

这是代码:

public class WidgetService extends RemoteViewsService {
    @Override
    public RemoteViewsFactory onGetViewFactory(Intent intent) {
        System.out.println("Factory");
        return(new WidgetViewsFactory(this.getApplicationContext(), intent));
    }
}
Run Code Online (Sandbox Code Playgroud)

小部件提供者:

public class WidgetViewsFactory implements RemoteViewsService.RemoteViewsFactory, LNTConstants
{   
    private Context context = null;

    ArrayList<DBItemModel> items;

    public WidgetViewsFactory(Context context, Intent intent) {
        this.context = context;

        Cursor c = Items.get(context, where);
        items = Items.getFromCursor(c);
    }

    @Override
    public void onCreate() {
        /*

        */
    }

    @Override
    public void onDestroy() {

    }

    @Override
    public int getCount() {
        if(items != null) {
            System.out.println("Count: " + …
Run Code Online (Sandbox Code Playgroud)

android homescreen android-widget

13
推荐指数
3
解决办法
4879
查看次数

带有 ListView 的小部件显示找到的每个项目的“正在加载”

我正在尝试为我的 Android 应用程序构建一个小部件,但遇到了这样的问题:虽然 ListView确实找到了数据(通过调试器,我可以看到 RemoteViewFactory 实现中的 getViewAt 方法被调用并返回正确的 RemoteViews),找到的每个条目都在我的小部件中简单地显示为“正在加载...”

Android 模拟器屏幕截图显示带有四个条目的小部件,所有四个条目均显示“正在加载”

郑重声明:在我的数据库中确实找到了 4 个条目,并且 getViewAt 方法被调用四次,每次都返回一个正确的列表项。

我的代码基于Android 文档,并使用StackView 示例作为技术参考。

在尝试解决这个问题时,我查阅了 stackoverflow 并发现了一些过去的 问题。最常见的修复建议是:

  • 确保 getViewTypeCount 方法返回 0 以外的值(通常为 1,因为大多数小部件仅使用一种视图类型);
  • 确保仅使用受支持的视图;
  • 一些更模糊的建议,因为一些任意视图属性应该或不应该使用。

我已尝试了上面的所有建议,并且仅使用支持的视图,但我的项目仍然没有显示。这里有人有想法吗?

我编写的相关代码列表:

添加到我的 AndroidManifest.xml 文件中的条目

    <service
        android:name=".widget.DfdWidgetService"
        android:permission="android.permission.BIND_REMOTEVIEWS" />

    <receiver android:name=".widget.DfdWidget">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/dfd_widget_info" />
    </receiver>
Run Code Online (Sandbox Code Playgroud)

小部件布局 xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#80DDE8ED"
android:padding="@dimen/widget_margin">

<ListView
    android:id="@+id/widgetRemindersListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/dfd_widget_list_item">

</ListView>

<TextView
    android:id="@+id/widgetEmptyViewText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="You have …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-listview

12
推荐指数
1
解决办法
2280
查看次数