I'm having a trouble with findViewById
but I can't find where the problem is.
Here's my FirstFragment class code:
public class VehicleInformation extends Fragment implements AdapterView.OnItemSelectedListener {
private TextView text_vehicle_no, text_chassis_no;
private TextView text_company_name,text_insurance_id;
RadioGroup radioGroup;
RadioButton radioButton;
private SpinnerAdapter text_vehicle_class;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_vehicle_information, container, false);
return rootView;
radioGroup = (RadioGroup) rootView.findViewById(R.id.insuranceYesNo);
text_vehicle_no = (TextView) rootView.findViewById(R.id.vehicle_no);
text_chassis_no = (TextView) rootView.findViewById(R.id.chassis_no);
Spinner spinner_vehicle_class = (Spinner) rootView.findViewById(R.id.vehicle_class);
Spinner spinner_vehicle_company = (Spinner) rootView.findViewById(R.id.vehicle_company);
Spinner spinner_vehicle_model = (Spinner) rootView.findViewById(R.id.vehicle_model);
Spinner spinner_vehicle_fuel = (Spinner) rootView.findViewById(R.id.vehicle_fuel);
Spinner spinner_vehicle_color = (Spinner) rootView.findViewById(R.id.vehicle_color);
Spinner spinner_vehicle_types = (Spinner) rootView.findViewById(R.id.vehicle_types);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.vehicle_class_array, android.R.layout.simple_spinner_item);
ArrayAdapter adapter1 = ArrayAdapter.createFromResource(this,R.array.vehicle_company_array, android.R.layout.simple_spinner_item);
ArrayAdapter adapter2 = ArrayAdapter.createFromResource(this,R.array.vehicle_model_array, android.R.layout.simple_spinner_item);
ArrayAdapter adapter3 = ArrayAdapter.createFromResource(this,R.array.vehicle_fuel_array, android.R.layout.simple_spinner_item);
ArrayAdapter adapter4 = ArrayAdapter.createFromResource(this,R.array.vehicle_color_array, android.R.layout.simple_spinner_item);
ArrayAdapter adapter7 = ArrayAdapter.createFromResource(this,R.array.vehicle_type_array, android.R.layout.simple_spinner_item);
//specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter7.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//aaply the adapter to the spinner
spinner_vehicle_class.setAdapter(adapter);
spinner_vehicle_company.setAdapter(adapter1);
spinner_vehicle_model.setAdapter(adapter2);
spinner_vehicle_fuel.setAdapter(adapter3);
spinner_vehicle_color.setAdapter(adapter4);
spinner_vehicle_types.setAdapter(adapter7);
spinner_vehicle_class.setOnItemSelectedListener(this);
spinner_vehicle_company.setOnItemSelectedListener(this);
spinner_vehicle_model.setOnItemSelectedListener(this);
spinner_vehicle_fuel.setOnItemSelectedListener(this);
spinner_vehicle_color.setOnItemSelectedListener(this);
spinner_vehicle_types.setOnItemSelectedListener(this);
}
public void onStart(){
super.onStart();
EditText datePicker=(EditText) findViewById(R.id.datePicker);
datePicker.setOnFocusChangeListener(new View.OnFocusChangeListener(){
public void onFocusChange(View view, boolean hasfocus){
if(hasfocus){
DateDialog dialog=new DateDialog(view);
android.support.v4.app.FragmentTransaction ft =getFragmentManager().beginTransaction();
dialog.show(ft, "DatePicker");
}
}
});
}
public void radiobtn(View view) {
int radiobtnselect = radioGroup.getCheckedRadioButtonId();
radioButton = (RadioButton) view.findViewById(radiobtnselect);
Toast.makeText(VehicleInformation.this, radioButton.getText(), Toast.LENGTH_SHORT).show();
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String sSelected=adapterView.getItemAtPosition(i).toString();
Toast.makeText(VehicleInformation.this,sSelected,Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
Also showing error on line
ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.vehicle_class_array, android.R.layout.simple_spinner_item);"
saying wrong 1st argument type
Also showing error on line Toast messsage saying cannot resolve method maketext
Unlike the Activity
class, Fragment
doesn't have a built-in findViewById()
method. This means you need to use View.findViewById()
, which you already are doing everywhere except in your onStart()
method. Here, you can just change this line:
EditText datePicker=(EditText) findViewById(R.id.datePicker);
to this:
EditText datePicker=(EditText) getView().findViewById(R.id.datePicker);
As for your adapter and toast issues, the problem is that (again, unlike Activity
), the Fragment
class is not a subclass of Context
, so you need to pass a different first argument. Try passing getContext()
instead of VehicleInformation.this
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.