activity_main.xml 파일을 열고, 앞서 정의한 TitlesFragment를 정적으로 추가
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:name="com.android.tabletphonefragment.TitlesFragment"
android:id="@+id/titles"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
TitlesFragment 내부에 void onTitleSelected(int i) 메소드를 포함한 인터페이스 OnTitleSelectedListener를 정의
public class TitlesFragment extends Fragment {
// ... 기존 코드와 동일
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// ... 기존 코드와 동일
}
// 인터페이스 추가 정의
public interface OnTitleSelectedListener {
public void onTitleSelected(int i);
}
}
MainActivity.java 파일에서, OnTitleSelectedListener 인터페이스 구현하기
public class MainActivity extends AppCompatActivity
implements TitlesFragment.OnTitleSelectedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onTitleSelected(int i) {
Toast.makeText(getApplicationContext(),"position="+i,Toast.LENGTH_SHORT).show();
}
}
TitlesFragment의 ListView의 항목이 선택되었을 때 선택된 항목 위치를 MainActivity의 onTitleSelected()메소드를 호출하면서 파라미터로 전달
public class TitlesFragment extends Fragment {
// ... 기존 코드와 동일
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// ... 기존 코드와 동일
// 리스트뷰 항목이 선택되었을 때, 항목 클릭 이벤트 처리
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
// 현재 프래그먼트와 연결된 액티비티를 반환
Activity activity = getActivity();
// 선택된 항목 위치(position)을 OnTitleSelectedListener 인터페이스를 구현한 액티비티로 전달
if (activity instanceof OnTitleSelectedListener)
((OnTitleSelectedListener)activity).onTitleSelected(position);
}
});
return rootView;
}
// ... 기존 코드와 동일
}
실행결과