Я хочу создать представление списка, в котором отображаются «награды», полученные игроком в игре.
Существует множество примеров того, как отобразить представление списка с текстом + значок.Однако в моем случае мне нужно изменить значок.
В случае, если награда вручается за одноразовое достижение.В таком случае я просто хочу, чтобы текст и «Трофей» появились.В других случаях он присуждается за выполнение определенного количества раз.В этом случае мне нужно включить индикатор выполнения.
Как мне сделать различные макеты в одном представлении списка?
Обновление:
Благодаря Leyths itработает (вроде).Дело в том, что ProgressBar не показывает - только его счетчик.
Это строка:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/tvwShortMessage"
android:typeface="sans"
android:textSize="14sp"
android:textStyle="italic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/tvwLongMessage"
android:typeface="sans"
android:textSize="14sp"
android:textStyle="italic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvwShortMessage"/>
<ProgressBar
android:id="@+id/pgbAwardProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@android:style/Widget.ProgressBar.Small"
android:layout_marginRight="5dp"
android:layout_below="@id/tvwLongMessage"/>
</RelativeLayout>
Код:
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)AwardsActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.awards_row, parent, false);
}
AwardItem award = awards.get(position);
ProgressBar pb = (ProgressBar) v.findViewById(R.id.pgbAwardProgress);
if(award.award_type == PROGRESSIVE) {
pb.setVisibility(View.VISIBLE);
pb.setMax(award.requirement);
pb.setProgress(award.current_amount);
} else {
pb.setVisibility(View.GONE);
}
((TextView) v.findViewById(R.id.tvwShortMessage)).
setText(MessageBuilder.buildMessage(AwardsActivity.this, award.award_text,
Integer.valueOf(award.requirement).toString()));
return v;
}
Я на самом деле хочу наоборот -бар без счетчика.
Это проблема из-за особого способа ее отображения или я что-то не так с индикатором выполнения?
Результирующий экран:
