如何在导航栏项目的片段内的gridview中添加图像
我一直在试图在导航栏项目的片段内获取一堆像图库的图像。这里的代码是这样的。如何在导航栏项目的片段内的gridview中添加图像
public class ImageAdapter extends BaseAdapter { private Context context;
public Integer[] images = {
R.drawable.base1, R.drawable.base2,
R.drawable.base3, R.drawable.base2,
R.drawable.base1, R.drawable.base3,
};
public ImageAdapter(Context c) {
context = c;
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int position) {
return images(position);
}
private Object images(int position) {
return images(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(images[position]);
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageview.setLayoutParams(new GridView.LayoutParams(240, 240));
return imageview;
}
,并在主活动我已经将这个
GridView gridView = (GridView) findViewById(R.id.gridView);
gridView.setAdapter(new ImageAdapter(this));`
但每当我跑我的应用程序我得到这个错误。这里是logcat的
8月7日至20日:34:49.974 4608-4608/com.example.android.navigation d/AndroidRuntime:关闭VM 8月7日至20日:34:49.975 4608-4608/COM .example.android.navigation E/AndroidRuntime:致命例外:main 进程:com.example.android.navigation,PID:4608 java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.android.navigation/com .example.android.navigation.MainActivity}:java.lang.NullPointerException:尝试在android.app.ActivityThread的空对象引用 上调用虚方法'void android.widget.GridView.setAdapter(android.widget.ListAdapter)' .performLaunchActivity(ActivityT hread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread .java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java :5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at co m.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 引发:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.GridView.setAdapter(android.widget.ListAdapter)'上的空对象引用 在com.example.android.navigation.MainActivity.onCreate(MainActivity.java:32) 在android.app.Activity.performCreate(Activity.java:6237) 在android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 在android.app.ActivityThr ead.-wrap11(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper .loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os。 ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit。java:616)
注意:不要混淆图像R.drawable.base123。我只写了3个简短。我在我的工作区中设置了20个图像。
尝试onCreate方法
private GridView mGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourLayout);
mGridView = (GridView) findViewById(R.id.gridView);
mGridView.setAdapter(new ImageAdapter(this));
}
检查的onCreate您活动的方法之前申报 “GridView的”,可能是你指的是错误的R.layout
文件
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Check this
setContentView(R.layout.filters);
}
根据stacktrace,你的gridview是null。你有定义它吗? –
如果我在主xml中定义gridview,那么图像也会出现在其他每个导航项目中。我希望不同的图像出现在导航栏上单击的不同项目上。 –