2012-01-12 12 views
0

IndexGainersLosersは3 buttonsです。 各buttonでは、listViewに対応するデータが入力されます。getView()メソッドのデータに基づいてイメージを設定します。

3列%Chgまたは正とすることができます。 %Chg値の値に基づいて

arrowがアップ負の値ためを下矢印正の値ため矢印すなわち%Chg列の値の後に置かimageViewに表示されなければならない対応...

いずれのbuttonクリックでも、updownからAdapterまでの配列の%Chg列の値を渡しています

その値に基づいて、Adapter

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; 
    } 

アダプタクラス(getViewメソッド()メソッド)からdown arrow又はup arrow

コードスニペットを設定しなければなりません。

ログには正しいデータが表示されていますが、の矢印が第1行に表示されます。各行に対応する矢印を表示するには、どのように

リストの最後の値がpositiveある、すなわちあれば、それは1行目にup arrowを示し、リストの最後の値がnegativeであれば、それは1行目にdown arrowを示しています...

私はアンドロイド開発には初めてです。だからすべてのヘルプは、生命維持者になります!!!

screen

+0

が......... – ingsaurabh

+0

が行わあなたの完全なGetViewメソッドを投稿するために、それがうまくいくと思います...... – GAMA

答えて

3
if (i < updown.length) { 
     if (updown[i] > 0) 
      holder.ivarrow.setImageResource(R.drawable.up); 
     else 
      holder.ivarrow.setImageResource(R.drawable.down); 
     Log.v("i=", i + " ,updown=" + updown[i]); 
     i++; 
    } 

を使用してコードを置き換える:

if (updown[position] > 0) 
      holder.ivarrow.setImageResource(R.drawable.up); 
     else 
      holder.ivarrow.setImageResource(R.drawable.down); 

そして私はあなた

+0

ありがとうございました...それは魅力的でした!!! – GAMA

関連する問題