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로 해보려고 했으나 오류가 계속 났었습니다.