android
Fragment에서 Toast, Button 사용 예제
strawberry-smoothie
2020. 10. 3. 23:03
Fragment에서는 Activity에서 사용하던 방식(?)으로 사용하면 동작하지 않습니다.
context인자로 this를 주면 이런 오류메시지를 출력합니다.
error: no suitable method found for makeText(<anonymous OnClickListener>,String,int)
Toast
Toast.makeText(getActivity(), "myText", Toast.LENGTH_SHORT).show();
toast는 context인자로 this가 아닌 getActivity()를 넘겨주어야 합니다. 나머지 length나 text사용법은 동일합니다.
Button
public class mainFragment extends Fragment{
// ...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View myView = inflater.inflate(R.layout.fragment_main, container, false);
Button mybutton = myView.findViewById(R.id.button01);
mybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
Toast.makeText(getActivity(), "myText", Toast.LENGTH_SHORT);
// Button Activity
}
});
return myView
}
LayoutInflater로 View 객체를 만들어주어야 합니다.
만약 Fragment가 동작하지않거나 반응이 없다면 먼저 MainActivity.class에 fragment객체를 생성해 주었는지 확인해보세요
fragment = new mainFragment();