잡다한 프로젝트/안드로이드

<안드로이드> 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;
        }


    }
}