잡다한 프로젝트/안드로이드
<안드로이드> fragment에 activity 띄우기
studying develop
2020. 10. 18. 02:46
프래그먼트에서 띄우는건 액티비티에서 띄우는거랑 좀 다르다.
activity랑 fragment가 달라서 그렇다.
<Button android:layout_width="wrap_content"
//id를 설정해주고, 아래 java 파일에서 사용된다.
android:id="@+id/InputRecord"
//implements View.onClickListener를 추가한다.
public class HomeFragment extends Fragment implements View.OnClickListener {
private HomeViewModel homeViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
final TextView textView = root.findViewById(R.id.text_home);
homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
//xml에 id가 InputRecord인 버튼에 OnClickListener를 추가한다.
Button onButtonClickedInputRecord = (Button) root.findViewById(R.id.InputRecord);
onButtonClickedInputRecord.setOnClickListener(this);
return root;
}
//implements View.onClickListener를 추가하면 추가된다.
@Override
public void onClick(View v) {
Button b = (Button) v;
switch(b.getId()) {
//id에 따라서 다른 구현을 한다.
case R.id.InputRecord:
//버튼 클릭시 아래 구현이 실행된다.
System.out.println("InputRecord clicked");
getActivity().startActivity(new Intent(getActivity(), InputActivity.class));
break;
}
}
}