2016-11-04 8 views
2

私はImageViewとTextviewを使用してカスタムリストビューでImageviewをクリックする方法を知りたいです。私はImageviewをClickableにしました。ここで処理方法画像とTextviewを使用してカスタムリストビューの画像ビューをクリックしますか?

はここ

CustomAdapter.java

public class CustomAdapter extends ArrayAdapter<RowItem> { 

    Context mcontext; 
    ArrayList<RowItem> rowItem = new ArrayList<RowItem>(); 
    private RowItem row; 
    RowItem data; 


    public CustomAdapter(Context context, int resourceId, 
           ArrayList<RowItem> items) { 
     super(context, resourceId, items); 
     this.mcontext = context; 
     this.rowItem =items; 
    } 

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


    @Override 
    public long getItemId(int position) { 
     return rowItem.indexOf(getItem(position)); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     final RowItem row_pos; 

     if (convertView == null) 
     { 
      LayoutInflater mInflater = (LayoutInflater) mcontext 
        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.list_item,parent,false); 
     } 

     RoundImageView imgIcon = (RoundImageView) convertView.findViewById(R.id.profile_pic); 

     TextView txtTitle = (TextView) convertView.findViewById(R.id.member_name); 
     TextView txtSubTitle = (TextView) convertView.findViewById(R.id.status); 
     TextView txtRightTitle = (TextView) convertView.findViewById(R.id.contact_type); 

     row_pos = getItem(position); 


     if (row_pos.getIcon() != null) 
     { 
      imgIcon.setImageURI(Uri.parse(row_pos.getIcon())); 
     } 
     else 
     { 
      imgIcon.setImageResource(R.mipmap.ic_launcher); 
     } 


     imgIcon.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       // Create custom dialog object 
       final Dialog dialog = new Dialog(getContext()); 

       // Include dialog.xml file 
       dialog.setContentView(R.layout.dialog); 

       ImageView img = (ImageView)dialog.findViewById(R.id.img); 

       if (row_pos.getIcon() != null) 
       { 
        img.setImageURI(Uri.parse(row_pos.getIcon())); 
       } 
       else 
       { 
        img.setImageResource(R.mipmap.ic_launcher); 
       } 
      } 
     }); 


     if(row_pos.getTitle() == " ") 
     txtTitle.setText(row_pos.getPhone_number()); 
     else 
     txtTitle.setText(row_pos.getTitle()); 

     txtSubTitle.setText(row_pos.getSub_title()); 
     txtRightTitle.setText(row_pos.getRight_title()); 

     return convertView; 
    } 

} 

ための私のコードで私のxmlレイアウトは、それは、任意の要素をしないように便利です

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    android:descendantFocusability="blocksDescendants"> 

    <com.example.rama.hello.RoundedImageView.RoundImageView 
     android:id="@+id/profile_pic" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_marginTop="10dp" 
     android:contentDescription="desc" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" 
     android:clickable="true" 
     /> 

    <TextView 
     android:id="@+id/member_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:layout_toRightOf="@+id/profile_pic" 
     android:paddingBottom="10dp" 
     android:text="txt" 
     android:paddingLeft="20dp" 
     android:textColor="#000000" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/status" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/member_name" 
     android:layout_below="@+id/member_name" 
     android:text="txt" 
     android:paddingLeft="20dp" 
     android:textColor="#000000" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/contact_type" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/member_name" 
     android:layout_alignBottom="@+id/member_name" 
     android:layout_alignParentRight="true" 
     android:text="txt" 
     android:layout_marginLeft="7dp" 
     android:textSize="16sp" /> 

</RelativeLayout> 
+0

この例を参照してください。 } ' – Javanshir

+0

あなたはすでにクリックイベントを処理しています –

+0

私はそれを処理しましたが、画像ビューをクリックしても何も起こりません。問題はありますか? – Srikanth86in

答えて

0

list_item.xml

ですカスタムビューをクリックして、 listView.sを実装します。 etOnItemClickListener(新しいListClickHandler());

実際、長いリストとスクロール可能なリストでは、1つのイメージアイテムをクリックして説明が間違っていました。それは別のイメージのものに属していた。 私はこの問題を解決して、カスタムリストビュー内でクリック可能な画像やボタンを持つ可能性をすべて取り除き、その上にクリックリスナーを実装しました。あなたはimgIcon.setOnClickListener(新しいView.OnClickListener(){@Override ます。public void onClickの(ビューV) { `経由ですでにそれを処理していない

https://github.com/alessandroargentieri/AuctionExample/blob/master/app/src/main/java/argentieri/alessandro/crossoverauction/ViewActivity.java

関連する問題