마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Fragment를 사용할때 MainActivity에서 코딩이 가능한가요?

0 추천
public class TabFragment1 extends Fragment implements View.OnClickListener {

    private Context context; //토스트 메시지 쓰려면 써야함

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab_fragment1, container, false);

        context = container.getContext(); //토스트 메시지 관련

        Button btn = (Button)view.findViewById(R.id.btn);
        btn.setOnClickListener(this);

        return view;
    }

    @Override
    public void onClick(View v) {
        Toast.makeText(context,"토스트",Toast.LENGTH_SHORT).show();

    }
}
public class MainActivity extends AppCompatActivity {
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(),"토스트",Toast.LENGTH_SHORT).show();
            }
        });

    }


}

 

위의 소스들은 버튼을 눌렀을 때 토스트를 띄우는 것인데 메인 액티비티에서 하던것처럼 생각했다가 계속 안 되서 방법을 알아내는데 1시간 걸린 소스입니다.

아무래도 제가 배운 책에서 예제소스들은 대부분 메인액티비티 안에서 동작하도록 배웠는데 fragment를 쓰니 난관에 봉착하네요

그래서 차라리 TabFragment1.java 의 소스는 탭만 정상적으로 작동하도록 기본적인 형태로 놔두고 MainActivity에서 tab_fragment1.xml의 위젯 아이디를 받아와 코딩하는 방법이 있었으면 하는데 그런 방법이 있나요? intent로 해보려고 했으나 오류가 계속 났었습니다.

hardandroid (120 포인트) 님이 2019년 11월 17일 질문

1개의 답변

0 추천
익명사용자 님이 2019년 11월 18일 답변
...