2016-01-19 36 views
1

目前我已经出来了一个使用Tab片段和RecyclerView的屏幕,如下所示。我想知道我将如何处理按钮点击红色的圆圈。每次点击时,我都会得到想要添加到购物车中的产品的详细信息。由于我发布的屏幕是使用RecyclerView,所以我很困惑如何获得我想要的产品的所有细节。 enter image description here如何使用RecyclerViewAdapter处理按钮单击标签片段?

适配器代码

public class ViewHolder extends RecyclerView.ViewHolder { 

    ImageView row_image; 
    TextView title; 
    TextView description; 

    public ViewHolder(View v, Context c) { 
     super(v); 
     mContext = c; 
     row_image = (ImageView) v.findViewById(R.id.row_image); 
     title = (TextView) v.findViewById(R.id.row_title); 
     description = (TextView) itemView.findViewById(R.id.row_description); 
    } 


} 

public CatalogPageAdapter(List<CatalogViewData> dataset) { 
    mDataset = dataset; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int i) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.catalog_layout, parent, false); 
    return new ViewHolder(v,parent.getContext()); 
} 

@Override 
public void onBindViewHolder(final ViewHolder viewHolder, int i) { 
    final CatalogViewData fakePageVH = mDataset.get(i); 
    String points = Double.toString(Double.parseDouble(fakePageVH.getDescription())); 

    viewHolder.title.setText(fakePageVH.getTitle()); 
    viewHolder.description.setText(points); 
    String var = fakePageVH.getImage(); 

    new getImage(var, viewHolder).execute(); 

    viewHolder.itemView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(v.getContext(), "Title: " + fakePageVH.getTitle(), Toast.LENGTH_SHORT).show(); 
     } 
    }); 
} 

public class getImage extends AsyncTask<String, String, String> { 

    String imageUrl; 
    ViewHolder holder; 
    Bitmap downloadedBitmap; 
    Bitmap scaled; 

    public getImage(String url, ViewHolder h){ 
     imageUrl = url; 
     holder = h; 
    } 

    @Override 
    protected String doInBackground(String... args) { 

     try { 
      URL url = new URL(imageUrl); 
      downloadedBitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
      scaled = Bitmap.createScaledBitmap(downloadedBitmap, 150, 100, true); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return "done"; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     holder.row_image.setImageBitmap(scaled); 
    } 

} 

@Override 
public int getItemCount() { 
    return mDataset == null ? 0 : mDataset.size(); 
} 

}

+0

尝试之前,它只能链接到购物车活动W¯¯没有我想要的细节 –

回答

2

我猜绿色的图标是不是ImageView否则将是一个愚蠢的问题。添加一个空的ImageView,将其放置在您的圈子上。然后将其添加到您的视图中并使用viewHolder.dummyImageView.setOnClickListener

编辑

XML:

<ImageView 
     android:id="@+id/dummyImageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 

VievHolder:

public ViewHolder(View v, Context c) { 
    super(v); 
    dummyImage = (ImageView) v.findViewById(R.id.dummyImageView); 
} 

OnClickListener:

ImageView dummyImage; 

viewHolder.dummyImage.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Toast.makeText(v.getContext(), "Click!", Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

你能举一些例子吗? TQ –

+0

这是为了祝酒讯息出来吗? –

+0

是的,这只是一个知道它被点击的标志。 – kagkar