2016-03-30 9 views
0

同じ行の別の画像ビューがクリックされたときに画像ビューを表示しようとしています.2つのメイン画像ビューが表示され、私はそれぞれのイメージビューを可視イメージビューのクリックで見えるようにする必要があります。リストビューの同じ行の中で別の画像ビューをクリックすると画像ビューを表示する方法

public class MatchListAdapter extends BaseAdapter { 

public static final String TAG = ".MatchListAdapter"; 
MatchStatListAdapter matchStatListAdapter; 
public List<RowItem> _data; 
private ArrayList<RowItem> users; 
RowItem data; 
private ArrayList<RowItem> arraylist; 
Context _c; 
ViewHolder v; 
public Typeface tf; 
View view_main; 
ImageLoader imageLoader; 
ViewHolder holder; 
public static Integer[] mThumbIds = {R.drawable.delhi, 
     R.drawable.gujrat, R.drawable.punjab, R.drawable.kolkata, R.drawable.mumbai, R.drawable.pune, 
     R.drawable.banglore, R.drawable.hydrabad}; 

public static Integer[] arrow_images = {R.drawable.arrow_bg}; 
int check; 
private final boolean[] selectedstates; 

public MatchListAdapter(List<RowItem> selectUsers, Context context) { 

    _c = context; 
    _data = selectUsers; 
    this.arraylist = new ArrayList<RowItem>(); 
    this.arraylist.addAll(_data); 
    tf = Typeface.createFromAsset(context.getAssets(), UriUtility.FONTPATH_dark); 
    imageLoader = new ImageLoader(context); 
    selectedstates = new boolean[_data.size()]; 
} 

@Override 
public int getCount() { 
    return _data.size(); 
} 

@Override 
public Object getItem(int i) { 
    return _data.get(i); 
} 

@Override 
public long getItemId(int i) { 
    return i; 
} 

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
@Override 
public View getView(final int i, final View convertView, ViewGroup viewGroup) { 

    view_main = convertView; 
    if (view_main == null) { 
     LayoutInflater li = (LayoutInflater) _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view_main = li.inflate(R.layout.group_list_detail, null); 
     holder = new ViewHolder(); 
     holder.team_one = (ImageView) view_main.findViewById(R.id.Image_team1); 
     holder.team_two = (ImageView) view_main.findViewById(R.id.Image_team2); 
     holder.arrow_one = (ImageView) view_main.findViewById(R.id.arrow_two); 
     holder.arrow_two = (ImageView) view_main.findViewById(R.id.arrow_two); 

     holder.date = (TextView) view_main.findViewById(R.id.Tview1_date); 
     holder.place = (TextView) view_main.findViewById(R.id.Tview1_place); 
     holder.vs = (TextView) view_main.findViewById(R.id.Tview1_vs); 
     holder.stat_one = (TextView) view_main.findViewById(R.id.Tview1_stats); 
     holder.stat_two = (TextView) view_main.findViewById(R.id.Tview2_stats); 
     view_main.setTag(holder); 
     holder.team_one.setTag(i); 
     holder.team_two.setTag(i); 
    } else { 
     holder = (ViewHolder) view_main.getTag(); 
     Log.e("Inside", "here--------------------------- In view2 data.getTeam_B()" + data.getTeam_B()); 
    } 
    data = (RowItem) _data.get(i); 
    holder.team_one.setImageResource(mThumbIds[Integer.valueOf(data.getTeam_A()) - 1]); 
    holder.team_two.setImageResource(mThumbIds[Integer.valueOf(data.getTeam_B()) - 1]); 
      holder.team_one.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

          holder.arrow_one.setVisibility(View.VISIBLE); 



     } 
    }); 

    holder.team_two.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      int position = (Integer) v.getTag(); 
      Log.e(TAG, "position of image " + position + "position i = " + i); 

     } 
    }); 

    holder.date.setTypeface(tf); 
    holder.place.setTypeface(tf); 
    holder.vs.setTypeface(tf); 
    holder.stat_one.setTypeface(tf); 
    holder.stat_two.setTypeface(tf); 

    holder.date.setText(data.getMatch_date()); 
    holder.place.setText(data.getVenue_name()); 
    holder.stat_one.setText(data.getMatch_date()); 

    return view_main; 
} 


static class ViewHolder { 
    ImageView team_one, arrow_one, arrow_two; 
    ImageView team_two; 
    TextView date, place, vs; 
    TextView stat_one, stat_two; 
    ImageLoader imageLoader; 
} 
+0

が、それは正常に見えるが拡張し、それが働いてイマイチ理由を、:の下に私は私の答えを投稿していますか? – Nanoc

+0

クリックすると@Nanocが表示されます。team_one arrow_oneが表示されていますが、ランダムな行が表示されていません。 – Smart

+0

レイアウトファイルが役立ちます。 – Lokanath

答えて

0

いくつかの努力の後、あなたの答えをお寄せいただきありがとうございます。

パブリッククラスMatchListAdapterがBaseAdapter {

public static final String TAG = ".MatchListAdapter"; 
MatchStatListAdapter matchStatListAdapter; 
public List<RowItem> _data; 
private ArrayList<RowItem> users; 
RowItem data; 
private ArrayList<RowItem> arraylist; 
Context _c; 
ViewHolder v; 
public Typeface tf; 
ListView listView; 
ImageLoader imageLoader; 
int match_id; 
public static Integer[] mThumbIds = {R.drawable.arrow_bg,R.drawable.delhi, 
     R.drawable.gujrat, R.drawable.punjab, R.drawable.kolkata, R.drawable.mumbai, R.drawable.pune, 
     R.drawable.banglore, R.drawable.hydrabad}; 


int check; 
RowItem rowItem; 
JSONArray ja; 

public MatchListAdapter(List<RowItem> selectUsers, Context context) { 

    _c = context; 
    _data = selectUsers; 
    this.arraylist = new ArrayList<RowItem>(); 
    this.arraylist.addAll(_data); 
    tf = Typeface.createFromAsset(context.getAssets(), UriUtility.FONTPATH_dark); 
    imageLoader = new ImageLoader(context); 

} 

@Override 
public int getCount() { 
    return _data.size(); 
} 

@Override 
public Object getItem(int i) { 
    return _data.get(i); 
} 

@Override 
public long getItemId(int i) { 
    return i; 
} 

@TargetApi(Build.VERSION_CODES.LOLLIPOP) 
@Override 
public View getView(final int i, View convertView, ViewGroup viewGroup) { 
    View view = convertView; 
    Log.e(TAG, "starting = = 1111111111 position "+ i); 
    //if (convertView == null) { 
     LayoutInflater li = (LayoutInflater) _c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     view = li.inflate(R.layout.group_list_detail, null); 
     team_one = (ImageView) view.findViewById(R.id.Image_team1); 
     team_two = (ImageView) view.findViewById(R.id.Image_team2); 
     r1 = (RelativeLayout) view.findViewById(R.id.relative_one); 
     r2 = (RelativeLayout) view.findViewById(R.id.relative_two); 
     date = (TextView) view.findViewById(R.id.Tview1_date); 
     place = (TextView) view.findViewById(R.id.Tview1_place); 
     vs = (TextView) view.findViewById(R.id.Tview1_vs); 
     stat_one = (TextView) view.findViewById(R.id.Tview1_stats); 
     stat_two = (TextView) view.findViewById(R.id.Tview2_stats); 
     arrow_one = (ImageView) view.findViewById(R.id.arrow_one); 
     arrow_two = (ImageView) view.findViewById(R.id.arrow_two); 

    //} 
    data = (RowItem) _data.get(i); 
    team_one.setImageResource(mThumbIds[Integer.valueOf(data.getTeam_A())]); 
    team_two.setImageResource(mThumbIds[Integer.valueOf(data.getTeam_B())]); 



    date.setText(data.getMatch_date()); 
    place.setText(data.getVenue_name()); 
    stat_one.setText(data.getComments()); 
    boolean one = data.getCheckedBox(); 
    boolean two = data.getCheckedBoxtwo(); 
    if(one){ 

     arrow_one.setVisibility(View.VISIBLE); 

    } 
    if (two){ 

     arrow_two.setVisibility(View.VISIBLE); 
    } 



    r1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      data = (RowItem) _data.get(i); 


      ImageView arrow_one = (ImageView) v.findViewById(R.id.arrow_one); 
      if (data.getCheckedBox() == false) { 


       arrow_one.setVisibility(View.VISIBLE); 
       data.setCheckedBox(true); 
      } else { 

       arrow_one.setVisibility(View.INVISIBLE); 
       data.setCheckedBox(false); 
      } 
     } 
    }); 

    r2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      ImageView arrow_two = (ImageView) v.findViewById(R.id.arrow_two); 
      if (data.getCheckedBoxtwo() == false) { 


       arrow_two.setVisibility(View.VISIBLE); 
       data.setCheckedBoxtwo(true); 
      } else { 

       arrow_two.setVisibility(View.INVISIBLE); 
       data.setCheckedBoxtwo(false); 

      } 
     } 
    }); 


    view.setTag(data); 
    return view; 
} 

}

あなたはarrow_oneを見えるようにする必要がありteam_oneにclickListenerを設定している
関連する問題