我正在尝试编辑一个宏,该宏将子表IOSRef,AndroidRef,WebRef,BetaRe的数据复制到主表(均属于单个工作表)。但是我希望它首先匹配日期,并相应地复制数据。
我尝试创建主工作表的日期数组,并将其与子工作表中的7天日期范围匹配,然后将其放入循环中。从而创建了4个这样的循环,这些循环在代码中可见。 该脚本可以正常运行,但不执行任何操作。
public class RepairListAdapter extends ArrayAdapter<Repair> {
private Context mContext;
private int mResource;
private int lastPosition = -1;
private static class ViewHolder {
TextView workIdTV;
TextView workerusernameTV;
TextView workOrderTV;
TextView dateOfDamageTV;
TextView damageSpottedByTV;
TextView finishDateTV;
TextView finishedByTV;
TextView priotityTV;
Spinner statussp;
}
public RepairListAdapter(Context context,int resource,ArrayList<Repair> objects) {
super(context,resource,objects);
mContext = context;
mResource = resource;
}
@RequiresApi(api = Build.VERSION_CODES.N)
@NonNull
@Override
public View getView(int position,View convertView,ViewGroup parent) {
//get the repairOrder information
int workId = getItem(position).getWorkId();
String workerusername = getItem(position).getWorkerusername();
String workOrder = getItem(position).getWorkOrder();
String dateOfDamage = getItem(position).getDateOfDamage();
String damageSpottedBy = getItem(position).getDamageSpottedBy();
String finishDate = getItem(position).getFinishDate();
String finishedBy = getItem(position).getFinishedBy();
String priority = getItem(position).getPriority();
String status = getItem(position).getStatus();
//create the view result for showing the animation
final View result;
//ViewHolder object
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(mResource,parent,false);
holder = new ViewHolder();
holder.workIdTV = (TextView) convertView.findViewById(R.id.workIdTextView);
holder.workerusernameTV = (TextView) convertView.findViewById(R.id.workerusernameTextView);
holder.workOrderTV = (TextView) convertView.findViewById(R.id.workOrderTextView);
holder.dateOfDamageTV = (TextView) convertView.findViewById(R.id.dateOfDamageTextView);
holder.damageSpottedByTV = (TextView) convertView.findViewById(R.id.damageSpottedByTextView);
holder.finishDateTV = (TextView) convertView.findViewById(R.id.finishDateTextView);
holder.finishedByTV = (TextView) convertView.findViewById(R.id.finishedByTextView);
holder.priotityTV = (TextView) convertView.findViewById(R.id.priorityTextView);
holder.statussp = (Spinner) convertView.findViewById(R.id.statusspinner);
result = convertView;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
result = convertView;
}
//set on click listener for each cell
convertView.findViewById(R.id.workIdTextView).setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View v) {
((ListView) parent).performItemClick(v,position,0);
}
});
//...on click for all cells,without the spinner cell
//animation
Animation animation = AnimationUtils.loadAnimation(mContext,(position > lastPosition) ? R.anim.load_down_anim : R.anim.load_up_anim);
result.startAnimation(animation);
lastPosition = position;
//set String objects to text
holder.workIdTV.setText(String.valueOf(workId));
holder.workerusernameTV.setText(workerusername);
holder.workOrderTV.setText(workOrder);
holder.dateOfDamageTV.setText(dateOfDamage);
holder.damageSpottedByTV.setText(damageSpottedBy);
holder.finishDateTV.setText(finishDate);
holder.finishedByTV.setText(finishedBy);
holder.priotityTV.setText(priority);
//spinner adapter
ArrayAdapter<String> myAdapter = new ArrayAdapter<>(mContext,android.R.layout.simple_list_item_1,//get arrayList
dbManagerRepairState.getNextPossibleState(status));
myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
holder.statussp.setadapter(myAdapter);
holder.statussp.setSelection(0);
holder.statussp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView,View selectedItemView,int position,long id) {
holder.statussp.setSelection(position);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
return convertView;
}
}