3 回答
TA贡献1816条经验 获得超4个赞
在传递数据之前,使用 Serializable 实现您的项目类,如下所示:
public class Item implements Serializable{
/*your class code here*/
}
然后像这样在 listView.setOnItemClicklistener 中传递数据
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Item passItem = itemList.get(position);
Intent intent = new Intent(ItemListView.this, ViewItemClicked.class);
Bundle itemBundle = new Bundle();
itemBundle.putSerializable("dataItem",passItem)// put the data and define the key
intent.putExtras(itemBundle)
startActivity(intent);
}
});
并在 ViewItemClicked.Class 中打开数据
public class ViewItemClicked extends AppCompatActivity {
ImageView image;
TextView name, desc;
Item item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
item = (Item) getIntent().getSerializableExtra("dataItem"); // use the key
setContentView(R.layout.activity_view_item_clicked);
/*now u can use the item data*/
}
}
TA贡献1821条经验 获得超4个赞
您使用的是哪种格式的图像
是 Base64 还是 Bitmap 如果是 Base64 试试这个代码..
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ItemListView.this, ViewItemClicked.class);
String name = list.get(position).getName();
String description = list.get(position).getDescription();
String image= list.get(position).getImage();
startActivity(intent);
}
在您的第二个活动中使用此代码..
Intent intent = getIntent();
String name = intent.getStringExtra("name");
String description = intent.getStringExtra("description");
String image = intent.getStringExtra("image");
在这里将 Base64 转换为 Bitmap ..
byte[] decodedString = Base64.decode(image, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,
decodedString.length);
添加回答
举报