Имею код:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragments2, null, false);
button = (Button) v.findViewById(R.id.button);
return v;
}
public void onClick(View v) {
Toast toast = Toast.makeText(getActivity(),
"123!", Toast.LENGTH_SHORT);
toast.show();
}
Ошибка:
Could not find method onClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button'
При нажатии кнопки выдает ошибку.В чем проблема?
Ну если таким способом, то наверное в методе onCreateView нужно вызвать метод OnClink и передать ему параметр button. То есть:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragments2, null, false);
button = (Button) v.findViewById(R.id.button);
onClick(button);
return v;
}
public void onClick(View v) {
Toast toast = Toast.makeText(getActivity(),
"123!", Toast.LENGTH_SHORT);
toast.show();
}
В таком случае при создании фрагмента будет выводится "123!".
Если вы хотите что бы при нажатии на кнопку проводились действия то лучше всего использовать setOnClickListener().
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragments2, null, false);
button = (Button) v.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Ваши действия
}
});
return v;
}
public class NameFragment extends Fragment implements View.OnClickListener {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragments2, null, false);
button = (Button) v.findViewById(R.id.button);
button.setOnClickListener(this);
return v;
}
public void onClick(View v) {
Toast toast = Toast.makeText(getActivity(),
"123!", Toast.LENGTH_SHORT);
toast.show();
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости