我想将我的照片设置到Android的gridview中?

我想将我的照片设置到Android的gridview中?,android,Android,这是我的mainActivity.java package com.domore.gridviewtutorial; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.GridView; public class AndroidGridLayoutActivity extends AppCompatActivity { @Override

这是我的mainActivity.java

package com.domore.gridviewtutorial;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;

public class AndroidGridLayoutActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_android_grid_layout);
        GridView gridView=(GridView)findViewById(R.id.grid_view);
        gridView.setAdapter(new ImageAdapter(this));
    }
}
我有一个grid_layout.xml,它可以从drawable目录中查看我的所有图像

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/grid_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:columnWidth="90dp"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="10dp"
    android:gravity="center"
    android:stretchMode="columnWidth" >

</GridView>
这里有完整的日志

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' on a null object reference
                                                                               at com.domore.gridviewtutorial.AndroidGridLayoutActivity.onCreate(AndroidGridLayoutActivity.java:14)

有人能解决这个问题吗?

这是你问题的完整解决方案

ImageAdapter类

public class ImageAdapter extends BaseAdapter {
private Context context;

// Keep all images into an array
public Integer[] mThumbIds = { R.drawable.ic_communities,
        R.drawable.ic_home, R.drawable.ic_launcher, R.drawable.ic_pages,
        R.drawable.ic_people, R.drawable.ic_people, R.drawable.ic_whats_hot };

public ImageAdapter(Context context) {
    this.context = context;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(context);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}}
将代码放入oncreate Main活动中

setContentView(R.layout.grid_layout.xml);// Missing this to explain
GridView gridView = (GridView) findViewById(R.id.grid_view);
gridView.setAdapter(new ImageAdapter(this));
second.xml文件

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
这对我有用,看看这个


愉快地编码并乐于提供帮助。

以下是您问题的完整解决方案

ImageAdapter类

public class ImageAdapter extends BaseAdapter {
private Context context;

// Keep all images into an array
public Integer[] mThumbIds = { R.drawable.ic_communities,
        R.drawable.ic_home, R.drawable.ic_launcher, R.drawable.ic_pages,
        R.drawable.ic_people, R.drawable.ic_people, R.drawable.ic_whats_hot };

public ImageAdapter(Context context) {
    this.context = context;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

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

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(context);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}}
将代码放入oncreate Main活动中

setContentView(R.layout.grid_layout.xml);// Missing this to explain
GridView gridView = (GridView) findViewById(R.id.grid_view);
gridView.setAdapter(new ImageAdapter(this));
second.xml文件

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" >
</GridView>
这对我有用,看看这个


乐于编码并乐于提供帮助。

您已将“内容视图”活动设置为不同的布局

setContentView(R.layout.activity_android_grid_layout);
换成

setContentView(R.layout.grid_layout.xml);

包含网格布局所在的布局。

您已将“内容视图”活动设置为不同的布局

setContentView(R.layout.activity_android_grid_layout);
换成

setContentView(R.layout.grid_layout.xml);
包含网格布局所在的布局。

替换此-

setContentView(R.layout.activity_android_grid_layout);
with-setContentViewR.layout.grid_layout

您使用了错误的setContentView。

替换此-

setContentView(R.layout.activity_android_grid_layout);
with-setContentViewR.layout.grid_layout


您使用了错误的setContentView。

您的适配器未设置为gridView。这样做吧,gridview.setAdapterNewImageAdapter这;在我发布代码时,我再次编辑了got,但我忘记了在代码中添加建议行。在添加这一行后,我遇到了类似的错误。请在删除这一行后重试imageView.setLayoutParamsnew GridView.LayoutParams70,70;和注释删除建议行后,您的o/pi收到了相同的错误您有activity_android_grid_layout.xml…检查xml的名称您的适配器未设置为gridView。这样做吧,gridview.setAdapterNewImageAdapter这;在我发布代码时,我再次编辑了got,但我忘记了在代码中添加建议行。在添加这一行后,我遇到了类似的错误。请在删除这一行后重试imageView.setLayoutParamsnew GridView.LayoutParams70,70;和注释您的o/pi在删除建议行后出现相同错误您有activity_android_grid_layout.xml…检查xmlAnswer帮助的名称,因此不要忘记接受答案并对其进行投票。回答帮助,因此不要忘记接受答案并对其进行投票。