我想将我的照片设置到Android的gridview中?
这是我的mainActivity.java我想将我的照片设置到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
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帮助的名称,因此不要忘记接受答案并对其进行投票。回答帮助,因此不要忘记接受答案并对其进行投票。