Reputation: 101
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
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