3.1 SDKを使用してホームスクリーンウィジェットを作成しようとしています。私はStackWidgetチュートリアルに従った。 StackView
をListView
に変更しました。 私のリストの各行に画像とテキストを追加したいのですが、これらは実行時に読み込まれます。私は私のWidgetProvider.java
クラスAndroid:ListView Appウィジェットに複数のビューを追加する
public RemoteViews getViewAt(int position) {
Bitmap bitmap = ((BitmapDrawable)mWidgetItems.get(position).getImage());
RemoteViews image = new RemoteViews(mContext.getPackageName(), R.layout.widget_item);
image.setImageViewBitmap(R.id.widget_image, bitmap);
RemoteViews text = new RemoteViews(mContext.getPackageName(), R.layout.widget_item);
text.setTextViewText(R.id.widget_text, mWidgetItems.get(position).getText());
RemoteViews layout = new RemoteViews(mContext.getPackageName(), R.layout.widget_item);
Bundle extras = new Bundle();
extras.putInt(StackWidgetProvider.EXTRA_ITEM, position);
Intent fillInIntent = new Intent();
fillInIntent.putExtras(extras);
layout.setOnClickFillInIntent(R.id.widget_item, fillInIntent);
return layout;
}
にこのコードを使用
このすべては、私がStackView
を使用するときに正しく動作しますが、ListView
に変更すると、すべてを台無しに。結果は、1つのビューのみを返すことができ、この
です。したがって、次のコードを追加すると、この問題が発生します。追加しないと、リストのコンテンツは空になります。
layout.addView(R.id.widget_item, image);
layout.addView(R.id.widget_item, text);
他にどのように複数のビューをウィジェットに追加できますか? これはStackViewでは動作しますが、ListViewでは動作しないのはなぜですか? どうすればよいですか?
ご協力いただきまして誠にありがとうございます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<ImageView
android:id="@+id/widget_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"/>
<TextView
android:id="@+id/widget_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:layout_weight="1"
android:textColor="#000000"/>
</LinearLayout>
私が上でやろうとしていたのは、パッケージ名が 'com.google.android'で始まるすべてのアプリとそれに関連するアイコンのリストでした。 –