Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在尝试获取图像的id以在全视图中显示它_Java_Android_Gridview - Fatal编程技术网

Java 我正在尝试获取图像的id以在全视图中显示它

Java 我正在尝试获取图像的id以在全视图中显示它,java,android,gridview,Java,Android,Gridview,下面是我无法获取图像id资源的类。我正在尝试从web服务获取所有数据。在这里,我发布了从中获取图像的所有类。我在gridView中显示了所有图像。在这方面我没有遇到问题,但是当我单击gridview的图像时,它显示的只是我调用的xml文件。我想我在某个地方调用FullImageActivity文件中的id时出错了 DefaultGridView.java public class DefaultGridView extends Activity { //int position; pu

下面是我无法获取图像id资源的类。我正在尝试从web服务获取所有数据。在这里,我发布了从中获取图像的所有类。我在gridView中显示了所有图像。在这方面我没有遇到问题,但是当我单击gridview的图像时,它显示的只是我调用的xml文件。我想我在某个地方调用FullImageActivity文件中的id时出错了

DefaultGridView.java

 public class DefaultGridView  extends Activity {


//int position;

public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
finish();

}

GridView gridView;
Context context=this;
DisplayImageOptions options;
protected ImageLoader imageLoader = ImageLoader.getInstance();



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.latestphotos);

        gridView=(GridView)findViewById(R.id.grid_view);

        options = new DisplayImageOptions.Builder()
        .showStubImage(R.drawable.stub_image)
        .showImageForEmptyUri(R.drawable.image_for_empty_url)
        .cacheInMemory()
        .cacheOnDisc()
        .bitmapConfig(Bitmap.Config.RGB_565)
        .build();


        gridView.setAdapter(new ImageAdapter());

    }

    public class ImageAdapter extends BaseAdapter {
        LayoutInflater inflater = LayoutInflater.from(context);



        public ImageAdapter() {
            // TODO Auto-generated constructor stub
            imageLoader.init(ImageLoaderConfiguration.createDefault(DefaultGridView.this));
        }
        @Override
        public int getCount() {
            return Global.getPhotos_list().size();
        }

        @Override
        public Object getItem(int position) {
            return position;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View view, ViewGroup viewGroup) {
            View v = view;
            ImageView picture;
            TextView name;


            if(v == null) {
                v = inflater.inflate(R.layout.other, 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)items.get(i);
            picture.setImageResource(item.getDrawable());
            name.setText(item.name);
            Log.d("position", position+"");

            imageLoader.displayImage(Constant.img_URL+Global.getPhotos_list().get(position).get("photo_name"), picture , options,null,context);
            gridView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View v,
                        int position, long a) {




                      Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                      i.putExtra("idkey", position); // pass the id
                      startActivity(i);

                }
            });
            return v;



        }
    }
}
ImageAdapter.java

public class ImageAdapter extends BaseAdapter {

private LayoutInflater inflater;

List<Item> items;
public ImageAdapter(Context context,List<Item> items) {
 inflater = LayoutInflater.from(context);
 this.items = items;


}

@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).drawable;
}

@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.other, 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)items.get(i);
    picture.setImageResource(item.getDrawable());
    name.setText(item.name);

    return v;
}

}

在gridView项目中,单击

Item item =(Item) items.get(position);
int  id = item.getDrawable(); 
Intent i = new Intent(ActivityName.this, FullImageActivity.class);
i.putExtra("idkey", id); // pass the id
startActivity(i);
然后全神贯注

int id = getIntent().getIntExtra("idkey"); //get id
imageview.setImageResource(id); // set the drawable to imageview
您可以将下面的移动到onCreate of DefaultFridView

  gridView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View v,
                        int position, long a) {
                Item item =(Item) items.get(position);
                int  id = item.getDrawable(); 
                Intent i = new Intent(ActivityName.this, FullImageActivity.class);
                i.putExtra("idkey", id); // pass the id
                startActivity(i);

                }
            });
然后


另外,我不理解将ImageAdapter作为独立类和内部类。为什么您需要在gridView中同时单击这两个项目

Item item =(Item) items.get(position);
int  id = item.getDrawable(); 
Intent i = new Intent(ActivityName.this, FullImageActivity.class);
i.putExtra("idkey", id); // pass the id
startActivity(i);
然后全神贯注

int id = getIntent().getIntExtra("idkey"); //get id
imageview.setImageResource(id); // set the drawable to imageview
您可以将下面的移动到onCreate of DefaultFridView

  gridView.setOnItemClickListener(new OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View v,
                        int position, long a) {
                Item item =(Item) items.get(position);
                int  id = item.getDrawable(); 
                Intent i = new Intent(ActivityName.this, FullImageActivity.class);
                i.putExtra("idkey", id); // pass the id
                startActivity(i);

                }
            });
然后


另外,我不理解将ImageAdapter作为独立类和内部类。为什么两者都需要呢?试试这个例子吧,我觉得它很有用


试试这个例子,如果有用的话


为什么您有两次ImageAdapter?一个作为内部类,另一个在单独的.java文件中?。下载示例并尝试一下为什么您有两次ImageAdapter?一个作为内部类,另一个在单独的.java文件中?。下载示例并试用它。我们在此处未使用静态阵列适配器。。因此,我们没有在DefaultGridView.java中使用Items来调用相同的函数,当我们将代码粘贴到其中时,它会在Items中显示错误。第一行。但是您有两个适配器类。还有错误是什么。错误是因为您需要在defaultgridview中包含列表,但您没有列表,并且我看不到您在图像适配器中填充项目的位置,因为我们的全部数据来自webservice。gridView中的图像不是静态的。。!!然后向我显示填充项目的代码。因为您在imageadapter中使用的是相同的,为什么您有两个适配器。我们在这里没有使用静态阵列适配器。。因此,我们没有在DefaultGridView.java中使用Items来调用相同的函数,当我们将代码粘贴到其中时,它会在Items中显示错误。第一行。但是您有两个适配器类。还有错误是什么。错误是因为您需要在defaultgridview中包含列表,但您没有列表,并且我看不到您在图像适配器中填充项目的位置,因为我们的全部数据来自webservice。gridView中的图像不是静态的。。!!然后向我显示填充项目的代码。因为您在imageadapter中使用的是相同的,为什么您有两个适配器。这没有道理
items.add(new Item("One", R.drawable.abstact_one));
items.add(new Item("Two",  R.drawable.abstract_three));
items.add(new Item("Three", R.drawable.image_two));
items.add(new Item("Four", R.drawable.image_four));
items.add(new Item("Five", R.drawable.image_five));
items.add(new Item("Six",  R.drawable.image_nine));
items.add(new Item("Seven", R.drawable.image_ten));
 gridView.setAdapter(new ImageAdapter(),items);