我的应用程序中的Recyclerview无法正常工作。 片段给了我这个错误,但我无法弄清楚。
我知道关于这个问题有很多问题,但是到目前为止,没有一个问题可以解决我的问题。
片段代码:
public class PatientsFragment extends Fragment {
private FragmentActivity myContext;
ClinicViewModel clinicViewModel;
@Override
public void onAttach(Activity activity) {
myContext = (FragmentActivity) activity;
super.onAttach(activity);
}
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_patients, container, false);
FloatingActionButton fab = root.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// -> Dodawanie nowego pacjenta
FrameLayout host = getView().findViewById(R.id.nav_host_fragment);
//host.removeAllViews();
AddPatientFragment addPatientFragment = new AddPatientFragment();
FragmentManager fm = myContext.getSupportFragmentManager();
fm.beginTransaction()
.replace(R.id.nav_host_fragment, addPatientFragment)
.addToBackStack(null)
.commit();
}
});
View rootView = inflater.inflate(R.layout.fragment_patients, container, false);
RecyclerView recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerViewPatients);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setHasFixedSize(true);
final PatientsAdapter adapter = new PatientsAdapter();
recyclerView.setAdapter(adapter);
clinicViewModel = ViewModelProviders.of(this).get(ClinicViewModel.class);
clinicViewModel.getAllPatients().observe(this, new Observer<List<Patient>>() {
@Override
public void onChanged(List<Patient> patients) {
//update Recycler todo
Toast.makeText(getContext(), "onChanged", Toast.LENGTH_SHORT).show();
adapter.setPatients(patients);
}
});
return root;
}
和适配器
private List<Patient> patients = new ArrayList<>();
@NonNull
@Override
public PatientHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.patient_item, parent, false);
return new PatientHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull PatientHolder holder, int position) {
Patient currentPatient = patients.get(position);
holder.textViewPersonName.setText(currentPatient.getFirstName() + " " + currentPatient.getLastName());
}
@Override
public int getItemCount() {
return patients.size();
}
public void setPatients(List<Patient> patients){
this.patients = patients;
notifyDataSetChanged();
}
class PatientHolder extends RecyclerView.ViewHolder {
private TextView textViewPersonName;
public PatientHolder(@NonNull View itemView) {
super(itemView);
textViewPersonName = itemView.findViewById(R.id.textViewPersonName);
}
}
}
就像我之前说过的,我看不到这段代码有什么问题:( 预先感谢!
答案 0 :(得分:0)
尝试使用def reverse_int():
num=(input("Enter a 3-digit number: "))
for number in num:
print (num[::-1])
reverse_int()
代替root
,如下所示:
rootView