ich eine Spinner
machen wollen Farben zu wählen, und ich möchte jedes Element es sich um eine Kreisansicht mit etwas Farbe sein [Farben sind in Styles]Benutzerdefinierte Spinner, Show Farbige Textviews
also stelle ich bin versucht zu Ihr individuelles Spinner Adapter
class CustomSpinnerAdapter extends ArrayAdapter<Integer> {
private Context mContext;
private Integer [] mColors;
public CustomSpinnerAdapter(Context context, int resource, Integer [] Colors) {
super(context, resource,Colors);
mContext=context;
mColors=Colors;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
View row=convertView;
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
row=inflater.inflate(R.layout.color_spinner_row, parent, false);
TextView Circle = (TextView) row.findViewById(R.id.circle);
GradientDrawable bgShape = (GradientDrawable)Circle.getBackground();
bgShape.setColor(mContext.getResources().getColor(mColors[position]));
return convertView;
}
}
und der OnCreate
Code ist:
Integer colors[]={R.color.Class_Color1,R.color.Class_Color2,R.color.Class_Color3,R.color.Class_Color4,R.color.Class_Color5};
Spinner Colors_Spinner= (Spinner) findViewById(R.id.Colors_Spinner);
CustomSpinnerAdapter customSpinnerAdapter = new CustomSpinnerAdapter(this, android.R.layout.simple_spinner_dropdown_item, colors);
Colors_Spinner.setAdapter(customSpinnerAdapter);
aber dieser Code wirft einen nullPointerExption
Also, wie das zu beheben?
bearbeiten, The Log Fehler:
FATAL EXCEPTION: main Process: com.example.atefhares.finalproject_build1, PID: 7309
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewGroup$LayoutParams android.view.View.getLayoutParams()' on a null object reference
at android.support.v7.widget.AppCompatSpinner.compatMeasureContentWidth(AppCompatSpinner.java:561)
at android.support.v7.widget.AppCompatSpinner.access$500(AppCompatSpinner.java:64)
at android.support.v7.widget.AppCompatSpinner$DropdownPopup.computeContentWidth(AppCompatSpinner.java:751)
at android.support.v7.widget.AppCompatSpinner$DropdownPopup.show(AppCompatSpinner.java:776)
at android.support.v7.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:434)
at android.view.View$PerformClick.run(View.java:19769)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5289)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
wo die Linie Fehler, ich denke, Fehler in dieser Zeile „row.findViewById (R.idcircle); –
Bitte beachten Sie die Bearbeiten, schrieb ich das Fehlerprotokoll –
haben Sie behoben? –