今天讲一下Android的Activity获取fragment和fragment的组件:
一.获取fragment:
当fragment被提交之后,即可通过以下两种方法获取fragment:
1.findFragmentById();
2.findFragmentByTag(String tag);
【fragmentTransaction.commit()提交fragment是异步处理的】
二.获取fragment的组件:
1.重写onStart()方法或onResume()【不能写在onCreate()中,因为该方法被调用时还无法相互获取对方组件】
2.直接通过findViewById()获取fragment的组件
看一下运行截图:
MainActivity.java:
注释写在程序中了
package activity.wyc.com.fragmentdemo0305;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.vrinux.fragment.Fragment01;
import com.vrinux.fragment.Fragment02;
public class MainActivity extends ActionBarActivity {
//private String TAG = "MainActivity";
private Button btnObj;
private FragmentManager fragmentManager = getFragmentManager();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment01 fragment01 = new Fragment01();
Fragment02 fragment02 = new Fragment02();
FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();
/**
* fragmentTransaction.replace(R.id.fm01id,fragment01,"fragment01Tag");
* R.id.fm01id 既是是加载fragment的容器的id,当加载后也既是所加载fragment的id
* "fragment01Tag"是对fragment01的标记
*/
fragmentTransaction.replace(R.id.fm01id,fragment01,"fragment01Tag");
fragmentTransaction.replace(R.id.fm02id,fragment02,<