简体   繁体   中英

"Error : cannot resolve symbol findViewById"

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM