編輯:關於Android編程
該篇文章是一個ListFragment的一個實例,通過了解該實例,更能了解比較常用的ListFragment的用法,以及各Fragment之間的數據傳遞。
實現效果圖:
該MainActivity中包括1個Button+2個Fragment(右邊兩個),點擊Button,出現中間的list列表,點擊列表中的任一項,相應item數值,會傳遞到右邊的Fragment中並顯示。

源代碼:

activity_main:
ArticleListFragment本來也應該有一個布局文件,這裡是在代碼中方便的直接添加了個ListView,也是因為該類繼承了ListFragment的緣故。
DetailFragment包含的布局文件:
MainActivity:
package com.fragmentdemo8_listfragment;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
/**
* ListFragment的一個實例Demo
*/
public class MainActivity extends Activity {
private Button button;
private FragmentManager manager;
private FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = getFragmentManager();
button = (Button) findViewById(R.id.button);
/**
* 點擊Activity中的該按鈕,Activity會在布局中間添加ArticleListFragment,並顯示列表數據。
*/
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
transaction = manager.beginTransaction();
ArticleListFragment articleListFragment = new ArticleListFragment();
transaction.add(R.id.center, articleListFragment, "center");
transaction.commit();
}
});
}
}
package com.fragmentdemo8_listfragment;
import java.util.ArrayList;
import java.util.List;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
/**
*ArticleListFragment繼承ListFragment,進行一些列表數據的顯示。
*/
public class ArticleListFragment extends ListFragment {
private ArrayAdapter adapter;
private List data;
private FragmentManager manager;
private FragmentTransaction transaction;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
data = new ArrayList();
for (int i = 0; i < 30; i++) {
data.add("rose" + i);
}
manager = getFragmentManager();
adapter = new ArrayAdapter(getActivity(),
android.R.layout.simple_list_item_1, data);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String str = adapter.getItem(position);
transaction = manager.beginTransaction();
DetailFragment detailFragment = new DetailFragment();
/**
* 使用Bundle類存儲傳遞數據
*/
Bundle bundle = new Bundle();
bundle.putString("id", str);
detailFragment.setArguments(bundle);
transaction.replace(R.id.right, detailFragment, "detail");
transaction.commit();
Toast.makeText(getActivity(), str, Toast.LENGTH_SHORT).show();
}
}
package com.fragmentdemo8_listfragment;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
*從ArticleListFragment中的列表item獲取數據,然後展示在該Fragment上。
*
*/
public class DetailFragment extends Fragment {
private TextView textView;
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.detail, null);
textView = (TextView) view.findViewById(R.id.textView);
Bundle bundle = getArguments();
String str = bundle.getString("id");
textView.setText(str);
return view;
}
}
點擊下載源碼
自定義View--彈性小球
效果圖自定義代碼public class BezierView extends View { Paint paint;//畫筆 Path path;//路徑
Android4.4 SystemUI分析之DessertCase
在SystemUI中有一個Activity可以顯示所有的Logo這個Activity涉及到的圖標存放在SystemUI/res/drawable-nodpi目錄下在這裡我
Android Activity啟動模式之singleTask實例詳解
本文實例分析了Android Activity啟動模式之singleTask。分享給大家供大家參考,具體如下:前面的文章介紹了Android 活動Activity的啟動模
Android登錄界面賬號密碼輸入框選中時,選中背景變換的實現方法
關注finddreams,一起分享,一起進步:http://blog.csdn.net/finddreams/article/details/45502277 常常在網