Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記(十六)——碎片之間進行交互(附源碼)

Android學習筆記(十六)——碎片之間進行交互(附源碼)

編輯:關於Android編程

碎片之間進行交互


點擊下載源碼


很多時候,一個活動中包含一個或者多個碎片,它們彼此協作,向用戶展示一個一致的UI。在這種情況下,碎片之間能進行通信並交換數據十分重要。


1、使用上一篇中創建的同一個項目,在fragment.xml中添加TextView的標識id:

        android:id="@+id/lblFragment1"

2、在fragment2.xml中添加一個Button,用於與fragment1進行交互:

    

3、將兩個碎片重新添加到main.xml中:

    

    

4、在FragmentsActivity.java中,注釋掉上一篇中添加的代碼,修改後如下:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		/*
		FragmentManager fragmentManager = getSupportFragmentManager();
		FragmentTransaction fragmentTransaction = fragmentManager
				.beginTransaction();
		//
		WindowManager windowManager = getWindowManager();
		Display display = windowManager.getDefaultDisplay();
		if (display.getWidth() > display.getHeight()) {
			//
			Fragment1 fragment1 = new Fragment1();
			fragmentTransaction.replace(android.R.id.content, fragment1);
		} else {
			//
			Fragment2 fragment2 = new Fragment2();
			fragmentTransaction.replace(android.R.id.content, fragment2);
		}
		fragmentTransaction.commit();
		*/
	}

5、在Fragment2.java中添加如下代碼,實現與Fragment1的交互:

	@Override
	public void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Button btnGetText = (Button) getActivity()
				.findViewById(R.id.btnGetText);
		btnGetText.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				TextView lbl = (TextView) getActivity().findViewById(
						R.id.lblFragment1);//通過getActivity()方法獲得當前嵌入了該碎片的活動,再使用findViewById()定位該碎片中包含的視圖
				Toast.makeText(getActivity(), lbl.getText(), Toast.LENGTH_SHORT)
						.show();
			}
		});
	}

6、按F11調試應用程序,在右側的第二個碎片中單擊按鈕,可以看到彈出一個消息框,內容正是碎片1中TextView的內容,說明獲取成功~



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved