ich die beigefügte Klasse in viewholder Patern bin mit meinem Artikel zu instanziiert und Wiederverwendung sehen jedes Mal, wenn ich versuche Woth AdapterAndroid ArrayAdapter viewHolder Muster giiving null Ansichten
sowieso, wenn die Ansicht Text auf bestimmten Wert zu setzen versuchte zu arbeiten stürzt zu geben, dass die Ansicht
public class SpinnerServicesAdapter extends ArrayAdapter<MyService> {
private LayoutInflater inflater;
private Context mContext;
private ArrayList<MyService> services;
private String headerTxt;
public SpinnerServicesAdapter(Context mContext, int textViewResourceId, ArrayList services, String headerTxt) {
super(mContext, textViewResourceId, services);
this.mContext = mContext;
this.services = services;
this.headerTxt = headerTxt;
inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
return getCustomView(position, convertView, parent);
}
public View getCustomView(int position, View convertView, ViewGroup parent) {
SpinnerViewHolder spinnerViewHolder;
if (convertView == null) {
if (position == 0) {
convertView = inflater.inflate(R.layout.spinner_header_item_two, parent, false);
} else {
convertView = inflater.inflate(R.layout.spinner_item_two, parent, false);
}
spinnerViewHolder = new SpinnerViewHolder(convertView);
convertView.setTag(spinnerViewHolder);
} else {
spinnerViewHolder = (SpinnerViewHolder) convertView.getTag();
}
if (position == 0) {
spinnerViewHolder.txtVue.setText(headerTxt);
} else {
spinnerViewHolder.txtVue.setText(services.get(position).getName_en());
}
return convertView;
}
class SpinnerViewHolder {
TextView txtVue;
public SpinnerViewHolder(View v) {
txtVue = (TextView) v.findViewById(R.id.spinner_item_two);
}
}
}
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.infovas.hanger.adapters.SpinnerServicesAdapter.getCustomView(SpinnerServicesAdapter.java:60)
at com.infovas.hanger.adapters.SpinnerServicesAdapter.getView(SpinnerServicesAdapter.java:42)
at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:197)
at android.widget.Spinner.onMeasure(Spinner.java:507)
at android.support.v7.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:416)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1083)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:615)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17548)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5478)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2632)
at android.view.View.measure(View.java:17548)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2125)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1238)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1455)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1126)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6041)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:792)
at android.view.Choreographer.doCallbacks(Choreographer.java:596)
at android.view.Choreographer.doFrame(Choreographer.java:557)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:778)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
Ich denke, Sie versuchen, eine "Listview" mit mehreren Zeilen Ansichten zu erstellen, wenn ja dann diese Implementierung falsch ist, werfen Sie einen Blick auf diese [Frage] (http://stackoverflow.com/questions/4777272/android-listview -mit-verschiedenen-Layouts-für-jede-Zeile). Auch würde ich vorschlagen, dass Sie 'RecyclerView' anstelle von' listview' verwenden. –
Da Sie zwei verschiedene Layouts verwenden, stellen Sie sicher, dass dieselbe Ansicht mit der gleichen ID 'R.id.spinner_item_two' in zwei Layouts vorhanden ist. Hoffe das wird helfen! – ArbenMaloku
Bitte überprüfen Sie meine Antwort unter – blueware