Несмотря на то, что фрагмент размещается в действии, он имеет свою собственную разметку (которая содержит в разметке действия), и поэтому вам придется определить представление фрагмента в его java class
.
В большинстве случаев фрагмент будет иметь свой собственный класс Java для управления им и управления им, поэтому в вашем случае он должен выглядеть следующим образом:
public class OneFragment extends Fragment{
public OneFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_one, container, false);
Button button=view.findViewById(R.id.myButtonInFragment);
return view;
}
}
Если вы хотите получить доступ к этой кнопке из родительского действия, вы можете сделать это, сделав кнопку public :
public class OneFragment extends Fragment{
public Button button;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_one, container, false);
button=view.findViewById(R.id.myButtonInFragment);
return view;
}
}
, а затем получить к нему доступ, используя экземпляр фрагмента в вашем activity
:
OneFragment myFragment=new OneFragment();
После того, как вы прикрепили фрагмент к упражнению, вы можете использовать:
myFragment.button.setClickEnabled(false);
Однако доступ к дочерним элементам фрагмента за пределами фрагмента не рекомендуется, и вам следует избегать этого, если можете.