0

ウィジェットのロードで問題が発生し、機能しません。

これは logcat 出力で受け取る出力ですが、意味がわかりません。

W/de.vogella.android.widget.example(1613): onUpdate method called
W/AppWidgetHostView(412): updateAppWidget couldn't find any view, using error view
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:394)
W/AppWidgetHostView(412):   at com.android.launcher2.LauncherAppWidgetHostView.updateAppWidget(LauncherAppWidgetHostView.java:54)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:376)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:101)
W/de.vogella.android.widget.example(1664): onUpdate method called
W/de.vogella.android.widget.example(1664): onUpdate method called
W/de.vogella.android.widget.example(1664): onUpdate method called
W/de.vogella.android.widget.example(1705): onUpdate method called
W/de.vogella.android.widget.example(1744): onUpdate method called
W/AppWidgetHostView(412): updateAppWidget couldn't find any view, using error view
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:394)
W/AppWidgetHostView(412):   at com.android.launcher2.LauncherAppWidgetHostView.updateAppWidget(LauncherAppWidgetHostView.java:54)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:376)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:101)
W/de.vogella.android.widget.example(1744): onUpdate method called
W/AppWidgetHostView(412): updateAppWidget couldn't find any view, using error view
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:394)
W/AppWidgetHostView(412):   at com.android.launcher2.LauncherAppWidgetHostView.updateAppWidget(LauncherAppWidgetHostView.java:54)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:376)
W/AppWidgetHostView(412):   at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:101)

OnUpdate()メソッドは、サービスを使用してトリガーされます。以下にサービス内容を掲載しました。

public void onUpdate(Context context, AppWidgetManager appWidgetManager,
      int[] appWidgetIds) {

    Log.w(LOG, "onUpdate method called");
    // Get all ids
    ComponentName thisWidget = new ComponentName(context,
        MyWidgetProvider.class);
    int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);

    // Build the intent to call the service
    Intent intent = new Intent(context.getApplicationContext(),
        UpdateWidgetService.class);
    intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds);

    // Update the widgets via the service
    context.startService(intent);
  }

問題はレイアウトにあると思います。マーキーテキストに変更したい場合、この問題が発生します。レイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_margin="8dip"
    android:background="@drawable/myshape" >

    <TextView
        android:id="@+id/update"
        android:layout_width="200dp"
        android:duplicateParentState="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Loading... More text to see if it spans or not and want more" >

        <requestFocus
            android:duplicateParentState="true"
            android:focusable="true"
            android:focusableInTouchMode="true" />
    </TextView>

</LinearLayout>

エラー メッセージは何を意味し、ウィジェットが読み込まれないのはなぜですか?

4

1 に答える 1

0

これは他の人にも役立つかもしれないと思います。

通常、マーキーを実行するには、アクティビティで を設定しTextView.setSelected(true)ます。ウィジェットでは、タグを使用して xml ファイル内で行う必要がありますrequestfocus。念のため、作業用のxmlファイルを投稿しました。

<TextView
    android:id="@+id/update"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:freezesText="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:paddingLeft="15dip"
    android:paddingRight="15dip"
    android:scrollHorizontally="true"
    android:singleLine="true" >

    <requestFocus
        android:duplicateParentState="true"
        android:focusable="true"
        android:focusableInTouchMode="true" />
</TextView>

乾杯。

于 2013-01-31T21:58:23.163 に答える