簡體   English   中英

帶有子項目的Android小部件Listview

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM