반응형
<subFragment desing code>에서 list ID 설정
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".SubFragment">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@android:id/list"/>
</LinearLayout>
<!--.................................................................-->
<!-- 위에 추가한 아이디 설정 코딩
android:id="@android:id/list"-->
<subFragment>
package com.example.listfragment;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import org.w3c.dom.Text;
public class SubFragment extends ListFragment {
TextView text1;
//listview 구성할 data
String [] list = {"data1","dat2","data3","data4","data5"};
public SubFragment(){
//Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
//view로 설정 및 view로 반환 : textView 이용할거라
View view= inflater.inflate(R.layout.fragment_sub, container, false);
//connect to subFragment xml id.
text1 = view.findViewById(R.id.textView);
//리스트뷰 설정- array define (context, layout, what data )
MainActivity activity = (MainActivity)getActivity(); //적용할 context 추출
ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity,android.R.layout.simple_list_item_1,list );
setListAdapter(adapter); //listView id가 자동인 @id/list 인경우디ㅏ.
return view;
}//finish
// listView 항목 클릭시 호출 - 버튼onclick 사용 불가(fragment니)
@Override
public void onListItemClick(@NonNull ListView l, @NonNull View v, int position, long id) {
super.onListItemClick(l, v, position, id);
text1.setText("선택한 data : "+list[position]);
}
}
<MainActivity>
package com.example.listfragment;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
//call constructor
SubFragment sub = new SubFragment();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//앱 실행시, fragment 실행
FragmentManager manager = getSupportFragmentManager(); //fragment 관리 객체추출
FragmentTransaction trans = manager.beginTransaction(); //fragment 변경관리 객체 추출
trans.replace(R.id.container, sub); //MainActivity의 layout에 subFragment설정
trans.commit(); //실행
}
}
'open coding' 카테고리의 다른 글
open coding - Recourse(String.xml, String_array.xml..etc.) (0) | 2020.11.26 |
---|---|
open coding- Dialog Fragment 기본코딩/ Android studio 안드로이드 스튜디오 (0) | 2020.11.18 |
open coding - fragment 기본 코딩 (0) | 2020.11.16 |
open coding- 시스템 메시지- broadCastreceiver 이용 ex)부팅완료 Toast로 띄우기 / 수신메세지 Toast로 띄우기 (0) | 2020.11.13 |
Open coding- Intent 기본개념 코딩.(다른 Activity 실행하기) (0) | 2020.11.10 |