我有家庭 scrren 小部件,我在小部件内部生成一些项目(我有这个项目的布局)并在它们上设置一些侦听器。这很简单,就像这样:
RemoteViews currentItem1 = new RemoteViews(context.getPackageName(), R.layout.complex_list_item);
updateViews.addView(R.id.panelNews, currentItem1);
Intent intent1 = new Intent(context, ForexWidget.class);
intent1.setAction(Constants.ACTION_PRESSED_ITEM);
PendingIntent pendingIntent1 = PendingIntent.getBroadcast(context, 0, intent1, 0);
updateViews.setOnClickPendingIntent(R.id.singleLine, pendingIntent1);
RemoteViews currentItem2 = new RemoteViews(context.getPackageName(), R.layout.complex_list_item);
updateViews.addView(R.id.panelNews, currentItem2);
Intent intent2 = new Intent(context, ForexWidget.class);
intent2.setAction(Constants.ACTION_PRESSED_ITEM);
PendingIntent pendingIntent2 = PendingIntent.getBroadcast(context, 0, intent2, 0);
updateViews.setOnClickPendingIntent(R.id.singleLine, pendingIntent2);
项目被创建,添加到小部件中,看起来很棒,但是监听器没有按照我想要的方式工作 - 只有第一个按钮的第一个监听器工作,其他人没有。我想这是因为我为具有相同 id (R.id.singleLine) 的两个按钮注册了 setOnClickPendingIntent - 但最大的问题是,当它在远程视图内部时,我无法设置按钮的 id ...
有没有办法做这样的事情?多谢
编辑:这是我的布局项目,我正在尝试生成。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/singleLine"
android:layout_width="fill_parent"
android:layout_height="34dp"
android:clickable="true"
android:orientation="vertical" >
<TextView
android:id="@+id/txtTime"
android:layout_width="45dp"
android:layout_height="wrap_content"
android:paddingRight="5dp"
android:textSize="@dimen/fontNewsCompact" />
<TextView
android:id="@+id/txtCurrency"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:paddingRight="5dp"
android:textSize="@dimen/fontNewsExtraCompact" />
</LinearLayout>