package com.example.kucun2.function;
import static android.content.ContentValues.TAG;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.example.kucun2.entity.Bancai;
import com.example.kucun2.entity.Caizhi;
import com.example.kucun2.entity.Chanpin;
import com.example.kucun2.entity.Dingdan;
import com.example.kucun2.entity.Mupi;
import com.example.kucun2.entity.Zujian;
import com.example.kucun2.entity.data.Data;
import java.util.List;
public class Adapter {
// 1. 更新材质适配器(材质显示只输出name)
public static ArrayAdapter<Caizhi> setupCaizhiSpinner(Spinner spinnerCaizhi, List<Caizhi> data, Context context) {
ArrayAdapter<Caizhi> caizhiAdapter = new ArrayAdapter<Caizhi>(
context, android.R.layout.simple_spinner_item, data) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Caizhi caizhi = getItem(position);
textView.setText(caizhi != null ? caizhi.getName() : "请选择材质");
return view;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Caizhi caizhi = getItem(position);
textView.setText(caizhi != null ? caizhi.getName() : "");
return textView;
}
};
caizhiAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCaizhi.setAdapter(caizhiAdapter);
return caizhiAdapter;
}
// 2. 更新木皮适配器(木皮输出name + 油或不加)
public static void setupMupiSpinner(Spinner spinnerMupi, List<Mupi> data,Context context) {
ArrayAdapter<Mupi> mupiAdapter = new ArrayAdapter<Mupi>(
context, android.R.layout.simple_spinner_item, data) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Mupi mupi = getItem(position);
textView.setText(mupi != null ? mupi.formatMupiDisplay() : "请选择木皮");
return textView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Mupi mupi = getItem(position);
textView.setText(mupi != null ? mupi.formatMupiDisplay() : "");
return textView;
}
};
mupiAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerMupi.setAdapter(mupiAdapter);
}
// 2. 更新木皮适配器(板材输出TableText)
public static void setupBancaiSpinners(Spinner spinnerBancai, List<Bancai> data, Context context) {
ArrayAdapter<Bancai> mupiAdapter = new ArrayAdapter<Bancai>(
context, android.R.layout.simple_spinner_item, data) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Bancai bancai = getItem(position);
textView.setText(bancai != null ? bancai.TableText() : "请选择板材");
return textView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Bancai bancai = getItem(position);
textView.setText(bancai != null ? bancai.TableText() : "");
return textView;
}
};
mupiAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerBancai.setAdapter(mupiAdapter);
}
public static void setupDingdanSpinner(Spinner spinnerDingdan, List<Dingdan> data, Context context) {
// 定制订单适配器显示订单号(number)
ArrayAdapter<Dingdan> dingdanAdapter = new ArrayAdapter<Dingdan>(
context, android.R.layout.simple_spinner_item, data) {
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Dingdan dingdan = getItem(position);
textView.setText(dingdan != null ? dingdan.getNumber() : "请选择");
return textView;
}
@Override
public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Dingdan dingdan = getItem(position);
textView.setText(dingdan != null ? dingdan.getNumber() : "请选择");
return textView;
}
};
dingdanAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerDingdan.setAdapter(dingdanAdapter);
}
public static void setupChanpinSpinner(Spinner spinnerChanpin, List<Chanpin> data, Context context) {
// 定制订单适配器显示订单号(number)
ArrayAdapter<Chanpin> ChanpinAdapter = new ArrayAdapter<Chanpin>(
context, android.R.layout.simple_spinner_item, data) {
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Chanpin chanpin = getItem(position);
textView.setText(chanpin != null ? chanpin.getBianhao() : "请选择");
return textView;
}
@Override
public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Chanpin chanpin = getItem(position);
textView.setText(chanpin != null ? chanpin.getBianhao() : "请选择");
return textView;
}
};
ChanpinAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerChanpin.setAdapter(ChanpinAdapter);
}
// 定制组件适配器显示组件名(name)
public static void setupZujianSpinner(Spinner spinnerZujian, List<Zujian> data, Context context) {
ArrayAdapter<Zujian> zujianAdapter = new ArrayAdapter<Zujian>(
context, android.R.layout.simple_spinner_item, data) {
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Zujian zujian = getItem(position);
textView.setText(zujian != null ? zujian.getName() : "请选择");
return textView;
}
@Override
public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = view.findViewById(android.R.id.text1);
Zujian zujian = getItem(position);
textView.setText(zujian != null ? zujian.getName() : "请选择");
return textView;
}
};
zujianAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerZujian.setAdapter(zujianAdapter);
}
}
mple.kucun2 E FATAL EXCEPTION: main
Process: com.example.kucun2, PID: 12408
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:454)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:416)
at com.example.kucun2.function.Adapter$5.getView(Adapter.java:166)
at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:206)
at android.widget.Spinner.onMeasure(Spinner.java:622)
at androidx.appcompat.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:444)
at android.view.View.measure(View.java:29007)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1226)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:728)
at android.view.View.measure(View.java:29007)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7132)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java