简体   繁体   English

如何setImageResource列表<Item>

[英]How to setImageResource List<Item>

I have a GridView. 我有一个GridView。 When I click GridView Item, Page go to FullScreenActivity with GridView Position.In this Activity, I use "id" from GridView Activity Intent. 当我单击GridView项时,Page转到带有GridView Position的FullScreenActivity。在此Activity中,我使用GridView Activity Intent中的“id”。 And then setImageResource with position. 然后用位置setImageResource。 I can't setImageResource in List Item Object. 我无法在List Item Object中设置setImageResource。 How can I solve this? 我怎么解决这个问题?

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 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 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

Because imageAdapter is new. 因为imageAdapter是新的。 it not include data. 它不包括数据。

you should send image resource. 你应该发送图像资源。

GridViewActivity.java 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 FullScreenActivity.java

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

hope to help you. 希望能帮到你。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM