2017-10-05 5 views
0

私は現在、自分のアプリケーションに入れたい機能に苦しんでいます。ユーザーのIncomesはListViewに表示されます。所得には通常の「収入」と「その他収入」の2種類があり、ユーザーが受け取ったSQLiteデータベースに収入を提出すると、アプリケーションで選択されます。さて、私はListViewに、ListViewの画像を使ってカテゴリのタイプ(所得カテゴリと所得の2種類のタイプ - 「所得」と「その他の所得」)に関連した異なる所得を表示したいと考えています。Androidカスタムアダプタ - リストビューの情報に関連した画像を設定する

私はこの操作を行う必要があります...カスタムリストビューのためのあなたには、いくつかの種類のスイッチ・ステートメントを行うことができます! 私のXMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:weightSum="100"> 

    <ImageView 
     android:orientation="vertical" 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:gravity="center_vertical" 
     android:id="@+id/icon1"/> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="220dp" 
     android:layout_height="48dp" 
     android:layout_weight="33.3"> 

     <TextView 
      android:text="TextView1" 
      android:textSize="18dp" 
      android:gravity="center_vertical" 
      android:layout_width="wrap_content" 
      android:layout_height="30dp" 
      android:id="@+id/text1"/> 

     <TextView 
      android:text="Textview2" 
      android:textSize="14dp" 
      android:gravity="center_vertical" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:="@id/text2"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="48dp" 
     android:orientation="vertical"> 

     <TextView 
      android:text="Textview3" 
      android:textSize="16dp" 
      android:layout_width="wrap_content" 
      android:layout_height="48dp" 
      android:layout_gravity="" 
      android:gravity="center_vertical" 
      android:id="@+id/text3"/> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="48dp" 
     android:layout_height="48dp"> 

     <ImageView 
      android:orientation="vertical" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:gravity="center_vertical" 
      android:id="@+id/icon2"/> 


    </LinearLayout> 

</LinearLayout> 

そして、私のAdapterClassは、次のようになります

public class CustomIncomeListAdapter extends ArrayAdapter<IncomeModel> { 

    private ArrayList<IncomeModel> incomeList; 
    private Activity context; 
    private ViewHolder viewHolder; 
    int[] incomeIcon = {R.drawable.income, R.drawable.otherincome}; 
    int[] forwardIcon = {R.drawable.forward}; 

    public CustomIncomeListAdapter(Activity context, int[] incomeIcon, ArrayList<IncomeModel> incomeList) { 
     super(context, R.layout.adapter_view_layout, incomeList); 
     this.incomeList = incomeList; 
     this.context = context; 
     this.incomeIcon = incomeIcon; 

    } 

    private static class ViewHolder { 
     TextView incomeReference; 
     TextView incomeDate; 
     TextView incomeAmount; 
     ImageView incomeIcon; 
     ImageView forwardIcon; 

    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     IncomeModel incomeModel = getItem(position); 

     if (convertView == null) { 
      viewHolder = new ViewHolder(); 
      LayoutInflater inflater = context.getLayoutInflater(); 
      convertView = inflater.inflate(R.layout.adapter_view_layout, null, true); 
      viewHolder.incomeReference = (TextView) convertView.findViewById(R.id.text1); 
      viewHolder.incomeDate = (TextView) convertView.findViewById(R.id.text2); 
      viewHolder.incomeAmount = (TextView) convertView.findViewById(R.id.text3); 
      viewHolder.incomeIcon = (ImageView) convertView.findViewById(R.id.icon1); 
      viewHolder.forwardIcon = (ImageView) convertView.findViewById(R.id.icon2); 
      convertView.setTag(viewHolder); 

     } else { 
      viewHolder = (ViewHolder) convertView.getTag(); 
     } 

     viewHolder.incomeReference.setText(incomeModel.getIncomeCategory()); 
     viewHolder.incomeDate.setText(incomeModel.getIncomeDate()); 
     viewHolder.incomeAmount.setText(incomeModel.getIncomeAmount()); 
     switch (...?) { 

    } 
} 
+0

データは何ですか?あなたのゲッターセッターまたはデータベースの詳細を投稿してください。 –

答えて

0
viewHolder.incomeAmount.setText(incomeModel.getIncomeAmount()); 
switch (income) { 
     //define your income to 1 for other income 
     case 1: 
      incomeIcon.setBackgroundResource(R.drawable.otherincome); 
      break; 
     default: 
      incomeIcon.setBackgroundResource(R.drawable.income); 
      break; 
    } 
+0

更新情報を見る:) –

0

タイプが収入の場合はタイプをチェックできます。対応するイメージは他のイメージを設定します。

関連する問題