2017-02-17 16 views
1

私はGridViewを持っています。 GridViewのアイテムをクリックすると、ページはGridViewのPositionを持つFullScreenActivityに移動します。このアクティビティでは、GridView Activity Intentの「id」を使用します。そして、positionでsetImageResourceを呼び出します。リスト項目オブジェクトにsetImageResourceを設定することはできません。これをどうすれば解決できますか?イメージリソースリストの設定方法<Item>

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

どのようなエラーが発生していますか? –

+0

imageView.setImageResourceを使用できません – WPG

答えて

0

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

はあなたを助けるために願っています。

+0

必須:com.example.application.Item/Found:java.lang.Object @ onItemClick。私はケースを使用します。それは大丈夫です。しかし、シンボルgetImageResourceを解決できません – WPG

+0

ありがとうございます。私は少しウルコードを変更します。アイテムアイテム=(アイテム)parent.getAdapter()。getItem(位置); i.putExtra( "imageResource"、item.getDrawableId()); – WPG

関連する問題