- activity_fragment.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".FragmentActivity">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="버튼"
/>
<!-- fragment를 담을 container LinearLayout -->
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@color/teal_200"
android:orientation="vertical" />
<!--fragment 정적 생성 방식 -->
<fragment
android:id="@+id/fragment_3"
android:name="com.example.myapplication.fragment.BlankFragment3"
android:layout_width="match_parent"
android:layout_height="100dp"
/>
</LinearLayout>
- FragmentActivity
public class FragmentActivity extends AppCompatActivity {
FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);
// Fragmet로 데이터 전달
// Fragment blankfragment1 = new BlankFragment1();
// Bundle bundle = new Bundle();
// bundle.putString("param1", "파라메터 1");
// bundle.putString("param2", "파라메터 2");
// blankfragment1.setArguments(bundle);
Fragment blankfragment1 = BlankFragment1.newInstance("파라메터1", "파라메터2");
/**
* LinearLayout container에 BlankFragment1 삽입
* BlankFragment1 에 파라메터 데이터 전송
*/
fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.container, blankfragment1);
fragmentTransaction.commit();
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/**
* BlankFragment1 -> BlankFragment3 로 container 교체
*/
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new BlankFragment3());
fragmentTransaction.commit();
}
});
}
}
- fragment_blank1.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".fragment.BlankFragment1">
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="BlankFragment View1" />
</FrameLayout>
- BlankFragment1.java
public class BlankFragment1 extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public BlankFragment1() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment BlankFragment1.
*/
// TODO: Rename and change types and number of parameters
public static BlankFragment1 newInstance(String param1, String param2) {
BlankFragment1 fragment = new BlankFragment1();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Activity에서 전달된 데이터 확인
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
Log.d("arguments", "param1 : " + mParam1 + " / " + "param2 : " + mParam2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_blank1, container, false);
view.setBackgroundColor(Color.parseColor("#ff00ff"));
return view;
}
}
'Android(Java)' 카테고리의 다른 글
[Java] SharedPreferences 기본사용방법 (0) | 2024.01.23 |
---|---|
[Java] LayoutInflater addView (0) | 2024.01.17 |
[Java] Fragment 상호 데이터 전송 (0) | 2024.01.16 |
[Java] Material TabLayout / ViewPager2 / Fragment 연동 기초 (0) | 2024.01.16 |
[Java]Runnable / Lock 동기화 기초 (0) | 2024.01.12 |