onClickListener doesn't working in fragment
11,253
you can NOT access the UI element in onCreateView method - EVER
use onActivityCreated method , thats tell the fragment the activity is fully created and ready to interact
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
Button b = (Button) v.findViewById(R.id.StartButton);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
![Admin](/assets/logo_square_200-5d0d61d6853298bd2a4fe063103715b4daf2819fc21225efa21dfb93e61952ea.png)
Author by
Admin
Updated on June 04, 2022Comments
-
Admin about 2 years
public class MainFragment extends Fragment { public static final String TAG = MainFragment.class.getSimpleName(); private static final String ABOUT_SCHEME = "settings"; private static final String ABOUT_AUTHORITY = "main"; public static final Uri ABOUT_URI = new Uri.Builder().scheme(ABOUT_SCHEME).authority(ABOUT_AUTHORITY).build(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.mainbutton, container, false); return v; } }
According to below link: How to handle button clicks using the XML onClick within Fragments
public class StartFragment extends Fragment implements OnClickListener{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_start, container, false); Button b = (Button) v.findViewById(R.id.StartButton); b.setOnClickListener(this); return v; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.StartButton: /* ... */ break; } } }
source doesn't work too.
-
Ted almost 9 yearsActually, you can access the UI elements in the onCreateView method. I just tried it, and I get the EditText and do a .setText(...) on it, and it works perfectly. The click event, however, does not work.
-
Ted almost 9 yearsAlso, where do you get the 'v' varible from?