Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android筆記4——Fragment的使用

android筆記4——Fragment的使用

編輯:關於Android編程

說明第一下:按照前面的方式我們創建了項目,如果使用的是最新的ADT,Minimum Android SDK選的是android2.*或1.*,此時會默認創建一個兼容的項目,——appcompat_v7,這個項目還是不能刪除的,刪除會報錯。。

說明第二下:項目創建好了之後,發現layout文件夾(布局)中會有默認兩個文件:adtivity和fragment文件:

\

1、Fragment概述:

Fragment意思為碎片,片段,說白了就是模塊,說道模塊,就不用我多說了。。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+zNjV96O6PC9wPgo8cD48L3A+CjxibG9ja3F1b3RlPgo8cD5GcmFnbWVudNfcysehsMe2yOuhsWFjdGl2aXR51tDKudPDtcSjrNf3zqphY3Rpdml0edbQtcS958Pm1+mzybK/t9ajuzwvcD4KPHA+0ru49mFjdGl2aXR5v8nS1LD8uqy24Lj2RnJhZ21lbnSjrNK7uPZGcmFnbWVudNKyv8nS1LG7tuC49mFjdGl2aXR5uLTTw6O7PC9wPgo8cD5GcmFnbWVudL/J0tTP7NOm19S8urXEysK8/qOs0rLTtdPQ19S8urXEyfrD/NbcxtqhozwvcD4KPC9ibG9ja3F1b3RlPgrK18/IztLDx8/Iv7TSu8/CztLDx9KqtO+1vcqyw7TSqsfzo7oKPHA+PC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/20140529/2014052909233527.jpg" alt="\"> \


2、fragment_main.xml文件:

內容如下:



    
    
在fragment中定義了兩個按鈕和一個文本顯示,以及在activity中也定義了一個文本顯示,點擊fragment不同按鈕控制文本顯示。

activity_main.xml內容如下:


	
    
    
    
    
    

3、創建MainFragment.java類:

package com.javen.xresource.activity.fragment;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

import com.javen.xresource.activity.R;

public class MainFragment extends Fragment {
	private TextView fragmentTextView;
	private Button button;

	public MainFragment() {
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.fragment_main, container,
				false);	//使用fragment_main.xml初始化Fragment
		
		button = (Button) rootView.findViewById(R.id.btn);	//獲取Fragment中的Button
		fragmentTextView = (TextView) rootView.findViewById(R.id.ftxv);	//獲取Fragment中的TextView
		
		button.setOnClickListener(new OnClickListener() {	//設置按鈕的監聽事件
			@Override
			public void onClick(View v) {
				fragmentTextView.setText("我被fragment點擊了...");
			}
		});
		
		return rootView;
	}
}

此時Fragment已經搞定了。。。

4、MainActivity.java

代碼如下:

package com.javen.xresource.activity;

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

	private Button button;
	private TextView activityTextView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		/*if (savedInstanceState == null) {
			getFragmentManager().beginTransaction()
					.add(R.id.container, new MainFragment()).commit();	//java代碼方式在activity中嵌入Fragment,與前面xml方式一樣
		}*/	
		
		activityTextView = (TextView) findViewById(R.id.atxv);	//獲取activity中的TextView
		
		Fragment fragment = getFragmentManager().findFragmentById(R.id.mft);	//獲取activity中的fragment
		button = (Button) fragment.getView().findViewById(R.id.btn2);	//獲取fragment中的Button2
		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				activityTextView.setText("我被activity點擊了...");
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

將項目運行即可。。。

6、問題來了:Button2 改變activity中TextView的操作能不能放在Fragment?--> 延伸出:Fragment能不能與Activity通信?

衍生問題後面再說,通信肯定是可以的。

至於對TextView的操作都放在Fragment中。。。本人嘗試過,使用:

getActivity().findViewById(R.id.atxv);

是不能獲取到Activity中的View元素的,此語句返回的是null。所以Button2的操作還是得放在activity中。

至於原因?歡迎大家發表評論來討論這個問題。。。





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