2017-07-20 4 views
0

Ich habe versucht, eine Menge Bilder wie die Galerie in mein Fragment des Navigationsleistenelements zu bekommen. hier geht der Code so.So fügen Sie Bilder in der Gridview innerhalb des Fragments der Navigationsleiste ein

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; 
} 

Und in der Haupttätigkeit habe ich diesen

gesetzt

GridView gridView = (GridView) findViewById(R.id.gridView);

gridView.setAdapter(new ImageAdapter(this));` 

aber wenn ich meine app laufen bekomme ich diesen Fehler. Hier ist die logcat

07-20 08: 34: 49,974 4608-4608/com.example.android.navigation D/Android Runtime: Ausschalten VM August 07-20: 34: 49,975 4608-4608/com .beispiel.android.navigation E/AndroidRuntime: FATALE AUSNAHME: main Prozess: com.beispiel.android.navigation, PID: 4608 java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo {com.beispiel.android.navigation/com .example.android.navigation.MainActivity}: java.lang.NullPointerException: Versuch, die virtuelle Methode 'void android.widget.GridView.setAdapter (android.widget.ListAdapter)' für eine Nullobjekt-Referenz bei android.app.ActivityThread aufzurufen .performLaunchActivity (ActivityT hread.java:2416) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) bei android.app.ActivityThread.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread .java: 1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper.loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java : 5417) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei co m.android.internal.os.ZygoteInit.main (ZygoteInit.java:616) Verursacht von: java.lang.NullPointerException: Versuch, die virtuelle Methode aufzurufen 'void android.widget.GridView.setAdapter (android.widget.ListAdapter)' auf einem Nullobjekt Referenz bei com.example.android.navigation.MainActivity.onCreate (MainActivity.java:32) bei android.app.Activity.performCreate (Activity.java:6237) bei android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476) at android.app.ActivityThr ead.-wrap11 (ActivityThread.java) bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1344) bei android.os.Handler.dispatchMessage (Handler.java:102) bei android.os.Looper .loop (Looper.java:148) bei android.app.ActivityThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os. ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 616)

Hinweis: Verwechseln Sie nicht die Bilder R.drawable.base123. Ich habe gerade 3 geschrieben, um es kurz zu machen. Ich habe 20 Bilder auf meinem Arbeitsbereich gespeichert.

+0

Nach zu Stacktrace ist Ihre Gridview null. Hast du es definiert? –

+0

Wenn ich Gridview in Haupt-XML definiere, erscheinen die Bilder auch in jedem anderen Navigationselement. Ich möchte, dass verschiedene Bilder auf der Navigationsleiste angezeigt werden. –

Antwort

0

Try "Gridview" vor dem onCreate Methode

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

prüfen onCreate Methode Ihrer Aktivität zu erklären, sein kann, Sie beziehen sich auf die falsche R.layout Datei

public void onCreate(Bundle savedInstanceState) 
{ 
     super.onCreate(savedInstanceState); 
     // Check this 
     setContentView(R.layout.filters); 
} 
Verwandte Themen