【发布时间】:2016-02-08 09:26:41
【问题描述】:
我有以下代码。当我单击网格视图中的图像时,该特定图像应显示在另一个活动中。我该怎么做?
这是我的 Activity 类::
public class ProductsActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.grid_view);
GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new MyAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
// this 'mActivity' parameter is Activity object, you can send the current activity.
Intent i = new Intent(getApplicationContext(), MobileDisplayActivity.class);
i.putExtra("positionId",position);
startActivity(i);
}
});
}
如何更改适配器类以满足我的要求。我认为问题出在getView()。
this is my adapter class:
private class MyAdapter extends BaseAdapter
{
private List<Item> items = new ArrayList<Item>();
private LayoutInflater inflater;
public MyAdapter(Context context)
{
inflater = LayoutInflater.from(context);
items.add(new Item("Image 1", R.drawable.ic_image4));
items.add(new Item("Image 2", R.drawable.ic_image5));
items.add(new Item("Image 3", R.drawable.ic_image4));
items.add(new Item("Image 4", R.drawable.ic_image5));
items.add(new Item("Image 5", R.drawable.ic_image4));
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int i)
{
return items.get(i);
}
@Override
public long getItemId(int i)
{
return items.get(i).drawableId;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup)
{
View v = view;
ImageView picture;
TextView name;
if(v == null)
{
v = inflater.inflate(R.layout.row_grid, viewGroup, false);
v.setTag(R.id.picture, v.findViewById(R.id.picture));
v.setTag(R.id.text, v.findViewById(R.id.text));
}
picture = (ImageView)v.getTag(R.id.picture);
name = (TextView)v.getTag(R.id.text);
Item item = (Item)getItem(i);
picture.setImageResource(item.drawableId);
name.setText(item.name);
return v;
}
private class Item
{
final String name;
final int drawableId;
Item(String name, int drawableId)
{
this.name = name;
this.drawableId = drawableId;
}
}
}
}
【问题讨论】:
标签: android android-imageview android-gridview