2017-07-20 27 views
0

我一直在試圖在導航欄項目的片段內獲取一堆像圖庫的圖像。這裏的代碼是這樣的。如何在導航欄項目的片段內的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,那麼圖像也會出現在其他每個導航項目中。我希望不同的圖像出現在導航欄上單擊的不同項目上。 –

回答

0

嘗試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)); 

}

0

檢查的onCreate您活動的方法之前申報 「GridView的」,可能是你指的是錯誤的R.layout文件

public void onCreate(Bundle savedInstanceState) 
{ 
     super.onCreate(savedInstanceState); 
     // Check this 
     setContentView(R.layout.filters); 
} 
相關問題