編輯:關於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 ArrayAdapteradapter; 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; } }
點擊下載源碼
效果圖自定義代碼public class BezierView extends View { Paint paint;//畫筆 Path path;//路徑
在SystemUI中有一個Activity可以顯示所有的Logo這個Activity涉及到的圖標存放在SystemUI/res/drawable-nodpi目錄下在這裡我
本文實例分析了Android Activity啟動模式之singleTask。分享給大家供大家參考,具體如下:前面的文章介紹了Android 活動Activity的啟動模
關注finddreams,一起分享,一起進步:http://blog.csdn.net/finddreams/article/details/45502277 常常在網