Diligent PD
Diligent PD

Reputation: 101

Android Studio does not resolve 'view'

Recently I got an error that I cannot solve despite having everything needed in my gradle and imports. I tried restarting the app, rerunning it and changing the imports but nothing changed. Android studio cannot resolve symbol 'view', is about the variable. Maybe is something that I missed. I don't know.

Here are the imports I think are needed:

import android.view.View;
import android.view.ViewGroup;

The code where I get the errors:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_running, container, false);

    //Initialize views
    stepText = (TextView) view.findViewById(R.id.stepText);
    timeText = (TextView) view.findViewById(R.id.timeText);
    speedText = (TextView) view.findViewById(R.id.speedText);
    distanceText = (TextView) view.findViewById(R.id.distanceText);
    orientationText = (TextView) view.findViewById(R.id.orientationText);
    achievedText = (TextView) view.findViewById(R.id.achievedText);
    setViewDefaultValues();

    //Step counting and other calculations start when user presses "start" button
    final Button startButton = (Button) view.findViewById(R.id.startButton);
    if (startButton != null) {
        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!active) {
                    startButton.setText(R.string.pause);
                    startButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.gray2));
                    sensorManager.registerListener(RunningFragment.this, stepDetectorSensor, SensorManager.SENSOR_DELAY_NORMAL);
                    sensorManager.registerListener(RunningFragment.this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
                    sensorManager.registerListener(RunningFragment.this, magnetometer, SensorManager.SENSOR_DELAY_NORMAL);
                    startTime = SystemClock.uptimeMillis();
                    handler.postDelayed(timerRunnable, 0);
                    active = true;

                } else {
                    startButton.setText(R.string.start);
                    startButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.gray2));
                    sensorManager.unregisterListener(RunningFragment.this, stepDetectorSensor);
                    sensorManager.unregisterListener(RunningFragment.this, accelerometer);
                    sensorManager.unregisterListener(RunningFragment.this, magnetometer);
                    elapsedTime += timeInMilliseconds;
                    handler.removeCallbacks(timerRunnable);
                    active = false;
                }
            }
        });
    }

//Reset all calculations to 0
Button resetButton = (Button) view.findViewById(R.id.resetButton);
    resetButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        stepCount = 0;
        distance = 0;
        elapsedTime = 0;
        setViewDefaultValues();
    }
});

//Opens SettingsActivity where user can set the step record of the day
Button settingsButton = (Button) view.findViewById(R.id.settingsButton);
    settingsButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(getActivity(), SettingsActivity.class);
        startActivity(intent);
    }
});

    return view;
}

Some screenshots:

Upvotes: 0

Views: 449

Answers (1)

Eyosiyas
Eyosiyas

Reputation: 1497

The issue was you are returning the view without using it. And you have to have a reference of the view in order to use it. Replace the code as follows.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_running, container, false);
 //Initialize views
    stepText = (TextView) view.findViewById(R.id.stepText);
    timeText = (TextView) view.findViewById(R.id.timeText);
    speedText = (TextView) view.findViewById(R.id.speedText);
    distanceText = (TextView) view.findViewById(R.id.distanceText);
    orientationText = (TextView) view.findViewById(R.id.orientationText);
    achievedText = (TextView) view.findViewById(R.id.achievedText);
    setViewDefaultValues();

    //Step counting and other calculations start when user presses "start" button
    final Button startButton = (Button) view.findViewById(R.id.startButton);
    if (startButton != null) {
        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!active) {
                    startButton.setText(R.string.pause);
                    startButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.gray2));
                    sensorManager.registerListener(RunningFragment.this, stepDetectorSensor, SensorManager.SENSOR_DELAY_NORMAL);
                    sensorManager.registerListener(RunningFragment.this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
                    sensorManager.registerListener(RunningFragment.this, magnetometer, SensorManager.SENSOR_DELAY_NORMAL);
                    startTime = SystemClock.uptimeMillis();
                    handler.postDelayed(timerRunnable, 0);
                    active = true;

                } else {
                    startButton.setText(R.string.start);
                    startButton.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.gray2));
                    sensorManager.unregisterListener(RunningFragment.this, stepDetectorSensor);
                    sensorManager.unregisterListener(RunningFragment.this, accelerometer);
                    sensorManager.unregisterListener(RunningFragment.this, magnetometer);
                    elapsedTime += timeInMilliseconds;
                    handler.removeCallbacks(timerRunnable);
                    active = false;
                }
            }
        });
return view;
}

Upvotes: 2

Related Questions