1

text と image を含むカスタム リストビューがあり、各行のテキストは string.xml の html 文字列から取得されます。

したがって、各行にはテキストと画像を表示する必要がありますが、アプリを実行するとhtmlタグが表示されず、string.xmlに保存されたテキストが取得され、各行に表示されますが、htmlタグの効果がなくても画像は表示されません各行に表示

リスト行に html タグと画像を含むテキストが含まれていることを最終的に表示するにはどうすればよいでしょうか。

アドバイスをいただければ幸いです。

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
     ListView listView = (ListView)findViewById(R.id.lis);
     String[] textEntries = {getString(R.string.day1),getString(R.string.day2), 
                             getString(R.string.day3),getString(R.string.day4),
                             getString(R.string.day5)};

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, textEntries);
 listView.setAdapter(adapter);
    }
}

アダプタ クラス

public class MyAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] textEntries;
Typeface tf;
static class ViewHolder {
    public TextView text;
    public ImageView image;
    }     
public MyAdapter(Activity context, String[] textEntries) {
    super(context, R.layout.row, textEntries);
    this.context = context;
    this.textEntries = textEntries;
    tf=Typeface.createFromAsset(context.getAssets(),"BFantezy.ttf");
    }                                                   
@Override
public View getView(int position, View convertView, ViewGroup parent) {     
    View rowView = convertView;
    if (rowView == null) {
      LayoutInflater inflater = context.getLayoutInflater();
      rowView = inflater.inflate(R.layout.row, null);
      ViewHolder viewHolder = new ViewHolder();
      viewHolder.text = (TextView) rowView.findViewById(R.id.row_label);
      viewHolder.image = (ImageView) rowView.findViewById(R.id.row_image);
      viewHolder.text.setTypeface(FontFactory.getBFantezy(getContext()));
      rowView.setTag(viewHolder);
      }     
     ViewHolder holder = (ViewHolder) rowView.getTag();
     String s = textEntries[position];
     holder.text.setText(s);

if ( s.startsWith("day1")) {
    holder.image.setImageResource(R.drawable.a); 
    }                       
if ( s.startsWith("day2")) {
    holder.image.setImageResource(R.drawable.b); 
    }       
if ( s.startsWith("day3")) {
    holder.image.setImageResource(R.drawable.c); 
    }                       
if ( s.startsWith("day4")) {
    holder.image.setImageResource(R.drawable.d); 
    }       
if ( s.startsWith("day5")) {
    holder.image.setImageResource(R.drawable.e); 
    }                       
return rowView;  
}
}
4

0 に答える 0