У меня есть фрагмент, и я хочу, чтобы кнопка запускала функцию Calculate () при ее нажатии.Мой фрагмент также основан на одном из шаблонов.
Я пробовал XML android: onClick, хотя я предполагаю, что он ищет внутри MainActivity вместо Fragment, поэтому он выдает ошибку.Я также следил за попытками использовать OnClickListener из другого поста, хотя его настройка (как в коде внутри OnCreateCiew) приводила к ошибкам, хотя это может быть просто моим любительским знанием того, как это работает.
Это моефункция вычисления (функция, которую я пытаюсь запустить, когда нажата моя кнопка), которая находится внутри действия фрагмента:
public void Calculate(View v) {
EditText InitialVelocityInput = getView().findViewById(R.id.initialVelocityInput);
EditText VelocityInput = getView().findViewById(R.id.velocityInput);
EditText AccelerationInput = getView().findViewById(R.id.accelerationInput);
EditText TimeInput = getView().findViewById(R.id.timeInput);
Log.d("bing", "bing");
}
При необходимости здесь вся активность фрагмента
При использовании XML onclick мое приложение просто вылетает при нажатии кнопки.При использовании OnClickListener, я не могу даже скомпилировать из-за ошибок.У меня нет большого опыта в кодировании, чтобы знать, что делает код фрагмента шаблона, но я предполагаю, что он конфликтует с тем, как я настраиваю OnClickListener.
Вот как я пытался настроить свой OnClickListener:
Button calculatebutton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View kinematicsCalculatorView = inflater.inflate(R.layout.fragment_fragment_calculator_kinematics, container, false);
calculatebutton = (Button) kinematicsCalculatorView.findViewById(R.id.calculateButton);
calculatebutton.setOnClickListener(this);
return kinematicsCalculatorView;
// Inflate the layout for this fragment
// return inflater.inflate(R.layout.fragment_fragment_calculator_kinematics, container, false);
}
public void onClick(View v) {
EditText InitialVelocityInput = getView().findViewById(R.id.initialVelocityInput);
EditText VelocityInput = getView().findViewById(R.id.velocityInput);
EditText AccelerationInput = getView().findViewById(R.id.accelerationInput);
EditText TimeInput = getView().findViewById(R.id.timeInput);
Log.d("bing", "bing");
}
Однако this
в calculatebutton.setOnClickListener(this);
отображается как ошибка, (setOnClickListener(android.view.View.OnClickListener) in View cannot be applied to (com.example.myApp.FragmentCalculatorKinematics)
).Метод onClick отображается как никогда не используемый.