如何在导航栏项目的片段内的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个图像。

+0

根据stacktrace,你的gridview是null。你有定义它吗? –

+0

如果我在主xml中定义gridview,那么图像也会出现在其他每个导航项目中。我希望不同的图像出现在导航栏上单击的不同项目上。 –

尝试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); 
}