Android 将ListView项(ImageView)显示给其他活动
我有一个带有ImageView和textView的简单列表视图 现在,每当我单击我的listItem时,我都需要将ImageView发送到另一个活动 我读了很多答案,但找不到更好的解决办法 这是我的lisview_items.xml:Android 将ListView项(ImageView)显示给其他活动,android,listview,android-activity,imageview,transfer,Android,Listview,Android Activity,Imageview,Transfer,我有一个带有ImageView和textView的简单列表视图 现在,每当我单击我的listItem时,我都需要将ImageView发送到另一个活动 我读了很多答案,但找不到更好的解决办法 这是我的lisview_items.xml: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" a
<?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="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/photo"
android:layout_width="150dip"
android:layout_height="100dip"
android:paddingRight="15dp"
android:paddingLeft="15dp"/>
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginLeft="160dp"
android:layout_marginTop="10dp"
android:descendantFocusability="blocksDescendants">
<TextView android:id="@+id/name"
android:textSize="14sp"
android:textStyle="bold"
android:textColor="#000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<RelativeLayout>
MyListView OnClick:
ArrayList<ItemDetails> image_details = GetSearchResults();
final ListView lv1 = (ListView) findViewById(R.id.list);
lv1.setAdapter(new ItemListBaseAdapter(this, image_details));
OnItemClickListener itemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
ItemDetails obj_itemDetails = (ItemDetails)o;
Toast.makeText(ListViewImagesActivity.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();
ProductName =obj_itemDetails.getName();
}
};
以类似的方式,我如何发送上面所示的ArrayList中的图像..有人能告诉我此用法吗您可以像处理名称一样将图像路径存储在
ItemDetails
对象上。然后,您可以通过意图
将路径传递到新的活动
如果图片在编译时可用,您可以像Gabe说的那样传递对其id的引用,而不是指向其位置的路径。如果您实际切换到该活动,您可以在intent extras中传递图像的资源id,然后使用
getResources().getDrawable(id)
在那里。您应该:
final ArrayList<ItemDetails> image_details = GetSearchResults();
final ListView lv1 = (ListView) findViewById(R.id.list);
lv1.setAdapter(new ItemListBaseAdapter(this, image_details));
OnItemClickListener itemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
ItemDetails selectedItem = image_details.get(position);
//To-DO get you data from the ItemDetails Getter
// selectedItem.getImage() or selectedItem.getName() .. etc
// the send the data using intent when opening another activity
Intent intent = new Intent(CurrentActivity.this, DisplayImageActivity.class);
intent.putExtra("image",selectedItem.getImage());
intent.putExtra("name",selectedItem.getName());
startActivty(intent);
}
};
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
data.edit().putString("SelectedProduct", ProductName).commit();
final ArrayList<ItemDetails> image_details = GetSearchResults();
final ListView lv1 = (ListView) findViewById(R.id.list);
lv1.setAdapter(new ItemListBaseAdapter(this, image_details));
OnItemClickListener itemClickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
ItemDetails selectedItem = image_details.get(position);
//To-DO get you data from the ItemDetails Getter
// selectedItem.getImage() or selectedItem.getName() .. etc
// the send the data using intent when opening another activity
Intent intent = new Intent(CurrentActivity.this, DisplayImageActivity.class);
intent.putExtra("image",selectedItem.getImage());
intent.putExtra("name",selectedItem.getName());
startActivty(intent);
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = getIntent();
String image = i.getStringExtra("image");
String name = i.getStringExtra("name");
}