[英]Android widget listview with subitem
我正在制作具有列表視圖的小部件,並且想向小部件添加字幕。 目前,我只能用此代碼顯示一行文本:
實現RemoteViewsService.RemoteViewsFactory的類:
@Override
public RemoteViews getViewAt(int position) {
RemoteViews row = new RemoteViews(ctxt.getPackageName(), R.layout.row);
String loadingData = "Loading Data";
if(wmc != null){
try{
String dayName = wmc.getDays().get(position).dayName;
row.setTextViewText(android.R.id.text1, dayName);
}
catch(IndexOutOfBoundsException e){
e.printStackTrace();
}
}
return row;
}
我的row.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="?android:attr/listPreferredItemHeight"
/>
如何在列表視圖中插入字幕? 我已經嘗試過類似的方法,但是它不起作用。
@Override
public RemoteViews getViewAt(int position) {
RemoteViews row = new RemoteViews(ctxt.getPackageName(), R.layout.row);
String loadingData = "Loading Data";
if(wmc != null){
try{
String dayName = wmc.getDays().get(position).dayName;
row.setTextViewText(android.R.id.text1, dayName);
row.setTextViewText(android.R.id.text2, dayName);
}
catch(IndexOutOfBoundsException e){
e.printStackTrace();
}
}
return row;
}
和
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:paddingLeft="5dp" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text1"
android:textSize="12sp"
android:paddingLeft="5dp"
>
</TextView>
</RelativeLayout>
這是您的代碼:查看ID:
row.setTextViewText(android.R.id.text1, dayName);
row.setTextViewText(android.R.id.text2, dayName);
這是有效的row.xml中的ID:
android:id="@android:id/text1"
這是第二個不起作用的xml的ID:
android:id="@+id/text1"
和
android:id="@+id/text2"
看到了沒?
您正在使用Android名稱空間ID。 然后,在不起作用的第二個xml中,您將應用程序名稱空間用作ID。
將代碼更改為此(您需要確保導入正確的R
類):
row.setTextViewText(R.id.text1, dayName);
row.setTextViewText(R.id.text2, dayName);
然后在您的xml中使用這些ID:
android:id="@+id/text1"
android:id="@+id/text2"
而且你應該准備好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.