Android App 에 서 는 ListFragment 의 인 스 턴 스 튜 토리 얼 을 사용 합 니 다.
16511 단어 AndroidFragmentListFragment
Fragment 에 비해 ListFragment 의 내용 은 목록(list)으로 표 시 됩 니 다.ListFragment 의 레이아웃 은 기본적으로 ListView 를 포함 합 니 다.따라서 ListFragment 에 대응 하 는 레이아웃 파일 에 android:id 를'@android:id/list'로 지정 한 ListView 컨트롤 을 지정 해 야 합 니 다!
ListFragment 기본 사용
Activity 에 ListFragment 를 표시 하 는 절 차 를 소개 합 니 다.
1.Activity 에 대응 하 는 코드
public class FragmentTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
2.Activity 에 대응 하 는 레이아웃
<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="horizontal" >
<fragment
android:name="com.skw.fragmenttest.MyListFragment"
android:id="@+id/myfragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
설명:이 Activity 의 레이아웃 에는 Fragment 하나만 포함 되 어 있 습 니 다.다음은 MyList Fragment 의 내용 을 살 펴 보 겠 습 니 다.3.MyListFragment 의 내용
public class MyListFragment extends ListFragment {
private static final String TAG = "##MyListFragment##";
private ListView selfList;
String[] cities = {
"Shenzhen",
"Beijing",
"Shanghai",
"Guangzhou",
"Wuhan",
"Tianjing",
"Changsha",
"Xi'an",
"Chongqing",
"Guilin",
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.list_fragment, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
// ListFragment ListView, @id/android:list
this.setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, cities));
}
public void onListItemClick(ListView parent, View v,
int position, long id) {
Log.d(TAG, "onListItemClick");
Toast.makeText(getActivity(), "You have selected " + cities[position],
Toast.LENGTH_SHORT).show();
}
}
설명:MyListFragment 는 사용자 정의 ListFragment 입 니 다.list 를 사 용 했 습 니 다.fragment.xml 를 레이아웃 으로 하고 android.R.layot.simple 을 통 해list_item_1.ListView 의 모든 항목 을 표시 합 니 다.4. list_fragment.xml 내용
<?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" >
<!-- ListFragment android:id "@id/android:list" -->
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
/>
</LinearLayout>
'Activity 의 레이아웃 과 코드'는 앞 과 마찬가지 로 설명 을 반복 하지 않 습 니 다.5.MyListFragment 의 내용
public class MyListFragment extends ListFragment {
private static final String TAG = "##MyListFragment##";
private ListView selfList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.list_fragment, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
final String[] from = new String[] {"title", "info"};
final int[] to = new int[] {R.id.text1, R.id.text2};
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
// SimpleAdapter, from to
SimpleAdapter adapter = new SimpleAdapter(
this.getActivity(), getSimpleData(),
R.layout.item, from, to);
this.setListAdapter(adapter);
}
public void onListItemClick(ListView parent, View v,
int position, long id) {
Log.d(TAG, "onListItemClick");
Toast.makeText(getActivity(),
"You have selected " + position,
Toast.LENGTH_SHORT).show();
}
private List<Map<String, Object>> getSimpleData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "Ferris wheel");
map.put("info", "Suzhou Ferris wheel");
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "Flower");
map.put("info", "Roser");
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "Disk");
map.put("info", "Song Disk");
list.add(map);
return list;
}
}
설명:MyListFragment 는 R.layot.list 를 사 용 했 습 니 다.fragment 를 레이아웃 으로 하고 ListView 의 모든 항목 에 R.layot.item 을 레이아웃 으로 사용 합 니 다.6. list_fragment.xml 내용
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
/>
7.item.xml 의 내용
<?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" >
<TextView android:id="@+id/text1"
android:textSize="12sp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
ListFragment 인 스 턴 스인 스 턴 스 설명:ListFragment 2 개 를 포함 하여 activity 를 만 듭 니 다.첫 번 째 ListFragment 는 ListView 각 줄 의 내용 을 사용 하여 안 드 로 이 드 가 자체 적 으로 가지 고 있 는 android.R.layot.simplelist_item_1 레이아웃 으로 표시 하기;두 번 째 ListFragment 의 줄 마다 내용 은 사용자 정의 layot 파일 을 통 해 표시 되 며 줄 마다 두 텍스트 를 표시 합 니 다.
activity 에 대응 하 는 layot 파일 코드:
<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="horizontal" >
<fragment
android:name="com.skywang.app.ListFragmentImpl"
android:id="@+id/fragment1"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<fragment
android:name="com.skywang.app.ListFragmentSelf"
android:id="@+id/fragment2"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
설명:(01)이 layot 레이아웃 은 두 개의 fragment 를 포함 합 니 다.
activity 코드:
package com.skywang.app;
import android.os.Bundle;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu;
public class ListFragmentTest extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_fragment_test);
}
}
설명:(01)onCreate View()에서 list 호출fragment_impl 은 이 ListFragment 의 레이아웃 파일 입 니 다.
(02)onCreate()에서 setListAdapter()를 통 해 android.R.layot.simple 을 설정 합 니 다.list_item_1.ListView 각 줄 의 레이아웃 파일 로 cities 를 데이터 의 모든 내용 으로 설정 합 니 다.
ListFragment Impl.java 의 코드:
package com.skywang.app;
import android.app.ListFragment;
import android.widget.ListView;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.util.Log;
import android.widget.Toast;
import android.widget.SimpleAdapter;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
public class ListFragmentImpl extends ListFragment{
private static final String TAG = "ListFragmentImpl";
private ListView selfList;
String[] cities = {
"Shenzhen",
"Beijing",
"Shanghai",
"Guangzhou",
"Wuhan",
"Tianjing",
"Changsha",
"Xi'an",
"Chongqing",
"Guilin",
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.list_fragment_impl, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
// ListFragment ListView, @id/android:list
this.setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, cities));
}
public void onListItemClick(ListView parent, View v,
int position, long id) {
Log.d(TAG, "onListItemClick");
Toast.makeText(getActivity(),
"You have selected " + cities[position],
Toast.LENGTH_SHORT).show();
}
}
list_fragment_impl.xml 내용:
<?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" >
<!-- ListFragment android:id "@id/android:list" -->
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
/>
</LinearLayout>
ListFragment Self.java 의 코드:package com.skywang.app;
import android.app.ListFragment;
import android.widget.ListView;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.util.Log;
import android.widget.Toast;
import android.widget.SimpleAdapter;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
public class ListFragmentSelf extends ListFragment{
private static final String TAG = "ListFragmentImpl";
private ListView selfList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.list_fragment_self, container, false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
final String[] from = new String[] {"title", "info"};
final int[] to = new int[] {R.id.text1, R.id.text2};
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);
// SimpleAdapter, from to
SimpleAdapter adapter = new SimpleAdapter(
this.getActivity(), getSimpleData(),
R.layout.two_textview, from, to);
this.setListAdapter(adapter);
}
public void onListItemClick(ListView parent, View v,
int position, long id) {
Log.d(TAG, "onListItemClick");
Toast.makeText(getActivity(),
"You have selected " + position,
Toast.LENGTH_SHORT).show();
}
private List<Map<String, Object>> getSimpleData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", "Ferris wheel");
map.put("info", "Suzhou Ferris wheel");
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "Flower");
map.put("info", "Roser");
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "Disk");
map.put("info", "Song Disk");
list.add(map);
return list;
}
}
설명:(01)onCreate View()에서 list 호출fragment_self 는 이 ListFragment 의 레이아웃 파일 입 니 다.
(02)onCreate()에서 setListAdapter()를 통 해 R.layot.to 설정textview 는 ListView 줄 마다 레이아웃 파일 입 니 다.
list_fragment_self.xml 의 내용:
<?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" >
<!-- ListFragment android:id "@id/android:list" -->
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:drawSelectorOnTop="false"
/>
</LinearLayout>
two_textview.xml 내용:
<?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" >
<TextView android:id="@+id/text1"
android:textSize="12sp"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
android:textSize="24sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
효과 그림:이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.