点击list view中的item,返回该item上的bimap cover,string titles,float prices到goods detail.java中的image view,text view并显示出来。完整代码和注释
时间: 2023-11-22 10:55:07 浏览: 49
以下是一个简单的示例代码,可以帮助你实现该功能:
1. 在ListView中设置适配器(Adapter):
```java
public class GoodsAdapter extends BaseAdapter {
private Context mContext;
private List<GoodsItem> mGoodsList;
public GoodsAdapter(Context context, List<GoodsItem> goodsList) {
mContext = context;
mGoodsList = goodsList;
}
@Override
public int getCount() {
return mGoodsList.size();
}
@Override
public Object getItem(int position) {
return mGoodsList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.goods_item, parent, false);
viewHolder.coverImageView = convertView.findViewById(R.id.cover_image_view);
viewHolder.titleTextView = convertView.findViewById(R.id.title_text_view);
viewHolder.priceTextView = convertView.findViewById(R.id.price_text_view);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
GoodsItem goodsItem = mGoodsList.get(position);
viewHolder.coverImageView.setImageBitmap(goodsItem.getCover());
viewHolder.titleTextView.setText(goodsItem.getTitle());
viewHolder.priceTextView.setText(String.format(Locale.getDefault(), "%.2f", goodsItem.getPrice()));
return convertView;
}
private static class ViewHolder {
ImageView coverImageView;
TextView titleTextView;
TextView priceTextView;
}
}
```
2. 在GoodsDetailActivity中获取ListView中点击的Item的数据:
```java
public class GoodsDetailActivity extends AppCompatActivity {
private ImageView mCoverImageView;
private TextView mTitleTextView;
private TextView mPriceTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_goods_detail);
mCoverImageView = findViewById(R.id.cover_image_view);
mTitleTextView = findViewById(R.id.title_text_view);
mPriceTextView = findViewById(R.id.price_text_view);
Intent intent = getIntent();
if (intent != null) {
GoodsItem goodsItem = intent.getParcelableExtra("goods_item");
if (goodsItem != null) {
mCoverImageView.setImageBitmap(goodsItem.getCover());
mTitleTextView.setText(goodsItem.getTitle());
mPriceTextView.setText(String.format(Locale.getDefault(), "%.2f", goodsItem.getPrice()));
}
}
}
}
```
3. 在ListView中设置点击事件,将点击的Item的数据传递给GoodsDetailActivity:
```java
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(new GoodsAdapter(this, goodsList));
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
GoodsItem goodsItem = (GoodsItem) parent.getItemAtPosition(position);
Intent intent = new Intent(MainActivity.this, GoodsDetailActivity.class);
intent.putExtra("goods_item", goodsItem);
startActivity(intent);
}
});
```
注意:上述代码中的GoodsItem类需要实现Parcelable接口,以便在Intent中传递数据。同时,GoodsDetailActivity中的布局文件需要包含ImageView和TextView来显示图片和标题、价格等信息。