Index
, Gainers
, Losers
- это 3 buttons
.При каждом нажатии button
, listView
заполняется соответствующими данными.
3-й столбец %Chg
может быть отрицательным или положительным .
На основании значения %Chg
соответствующее arrow
должно отображаться в imageView
, помещенном после значения столбца %Chg
, т.е. стрелка вверх для положительное значение и стрелка вниз для отрицательное значение ...
При любом щелчке button
я передаю значение столбца %Chg
в массиве с именем updown
в Adapter
class
На основании этого значения Adapter
должен установить down arrow
или up arrow
Фрагмент кода изКласс адаптера (метод getView ())
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
LayoutInflater inflater = activity.getLayoutInflater();
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_table, null);
holder = new ViewHolder();
holder.txtFirst = (TextView) convertView
.findViewById(R.id.FirstText);
holder.txtSecond = (TextView) convertView
.findViewById(R.id.SecondText);
holder.txtThird = (TextView) convertView
.findViewById(R.id.ThirdText);
holder.ivarrow = (ImageView) convertView.findViewById(R.id.ivarrow);
holder.l1 = (LinearLayout) convertView
.findViewById(R.id.tableLayout);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
HashMap<String, String> map = list.get(position);
//Setting the row background
if (count % 2 == 0) {
try {
InputStream is1 = ctx.getAssets().open("cellbg.png");
Drawable d1 = Drawable.createFromStream(is1, "cellbg");
holder.l1.setBackgroundDrawable(d1);
} catch (Exception e) {
throw new Error(" exception in TableListAdapter "
+ e.getMessage());
}
} else {
try {
InputStream is2 = ctx.getAssets().open("cellbg1.png");
Drawable d2 = Drawable.createFromStream(is2, "cellbg1");
holder.l1.setBackgroundDrawable(d2);
} catch (Exception e) {
throw new Error(" exception in TableListAdapter "
+ e.getMessage());
}
}
count++;
//setting the arrow
if (i < updown.length) {
if (updown[i] > 0) {
holder.ivarrow.setImageResource(R.drawable.up);
Log.v("up", "up");
} else {
holder.ivarrow.setImageResource(R.drawable.down);
Log.v("down", "down");
}
Log.v("i=", i + " ,updown=" + updown[i]);
i++;
}
holder.txtFirst.setText(map.get(FIRST_COLUMN));
holder.txtSecond.setText(map.get(SECOND_COLUMN));
holder.txtThird.setText(map.get(THIRD_COLUMN));
return convertView;
}
.
Журнал показывает правильные данные, но стрелка отображается только в 1-й строке .т. е. если последнее значение списка равно positive
, оно показывает up arrow
до 1-й строки, а если последнее значение списка равно negative
, оно показывает down arrow
до 1-й строки ...
Как отобразить соответствующую стрелку в каждой строке ??
Я новичок в разработке Android.Так что ЛЮБАЯ ПОМОЩЬ БУДЕТ СБЕРЕЖАТЬ !!! .