【问题标题】:How to setImageResource List<Item>如何设置ImageResource List<Item>
【发布时间】:2017-02-17 09:21:24
【问题描述】:

我有一个 GridView。当我单击 GridView 项目时,页面转到具有 GridView 位置的 FullScreenActivity。在此 Activity 中,我使用 GridView Activity Intent 中的“id”。然后 setImageResource 与位置。我无法在列表项对象中设置图像资源。我该如何解决这个问题?

public class MyAdapter extends BaseAdapter {
    List<Item> mItems = new ArrayList<Item>();
    LayoutInflater mInflater;

    public MyAdapter(Context context) {
        mInflater = LayoutInflater.from(context);    
        mItems.add(new Item("Red",       R.drawable.red));
        mItems.add(new Item("Magenta",   R.drawable.magenta));
        mItems.add(new Item("Dark Gray", R.drawable.dark_gray));
        mItems.add(new Item("Gray",      R.drawable.gray));
        mItems.add(new Item("Green",     R.drawable.green));
        mItems.add(new Item("Cyan",      R.drawable.cyan));
    }
    .........
}

GridViewActivity.java

GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new MyAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
        i.putExtra("id", position);
        startActivity(i);
    }
});

FullScreenActivity.java

   Intent i = getIntent();
   int position = i.getExtras().getInt("id");
   MyAdapter imageAdapter = new MyAdapter(this);
   ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
   imageView.setImageResource(imageAdapter.mThumbIds[position]); // error

【问题讨论】:

  • 你遇到了什么错误?
  • 无法使用 imageView.setImageResource

标签: java android list gridview baseadapter


【解决方案1】:

因为 imageAdapter 是新的。它不包括数据。

你应该发送图片资源。

GridViewActivity.java

GridView gridView = (GridView) findViewById(R.id.gridview);
gridView.setAdapter(new MyAdapter(this));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Item item = parent.getAdapter().getItem(position);

    Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
    i.putExtra("imageResource", item.getImageResource);
    startActivity(i);
 }
});

FullScreenActivity.java

Intent i = getIntent();
int imageResource= i.getExtras().getInt("imageResource");
ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
imageView.setImageResource(imageResource);

希望能帮到你。

【讨论】:

  • 必需:com.example.application.Item / 找到:java.lang.Object @onItemClick。我用凯斯。没关系。但无法解析符号 getImageResource
  • 谢谢。我稍微改变了你的代码。 Item item = (Item) parent.getAdapter().getItem(position); i.putExtra("imageResource", item.getDrawableId());
猜你喜欢
  • 2014-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多