layoutinflater(fragment中怎么得到layoutinflater)
本文目录
- fragment中怎么得到layoutinflater
- 关于LayoutInflater.from()方法
- android中的 inflate是什么意思
- 在fragment怎么用getlayoutinflater
fragment中怎么得到layoutinflater
不能在onCreate函数中获取控件,以为fragment还没有start,你可以在onStart函数中获取:@Overrideprotected void onStart() { super.onStart(); View view = this.findViewById(R.id.btnTest); view.setOnClickListener(new android.view.View.OnClickListener(){ public void onClick(android.view.View v) { //TODO... } });}我之前也遇到这样的问题。
关于LayoutInflater.from()方法
你好, 通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件. 因此如果你的Activity里如果用到别的layout,比如对话框上的layout,你还要设置
android中的 inflate是什么意思
inflate()的作用就是将一个用xml定义的布局文件查找出来,注意与findViewById()的区别,inflate是加载一个布局文件,而findViewById则是从布局文件中查找一个控件。1.获取LayoutInflater对象有三种方法LayoutInflater inflater=LayoutInflater.from(this);LayoutInflater inflater=getLayoutInflater();LayoutInflater inflater=(LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);2.关于LayoutInflater类inflate(int resource, ViewGroup root, boolean attachToRoot)方法三个参数的含义resource:需要加载布局文件的id,意思是需要将这个布局文件中加载到Activity中来操作。root:需要附加到resource资源文件的根控件,什么意思呢,就是inflate()会返回一个View对象,如果第三个参数attachToRoot为true,就将这个root作为根对象返回,否则仅仅将这个root对象的LayoutParams属性附加到resource对象的根布局对象上,也就是布局文件resource的最外层的View上,比如是一个LinearLayout或者其它的Layout对象。attachToRoot:是否将root附加到布局文件的根视图上
在fragment怎么用getlayoutinflater
用了一个FragmentActivity作为主界面,包含了三个Fragment,实现了一个滑动的效果。现在我想讲其中一个Fragment,作为一个设置的界面,所以我想使用PreferenceFragment来实现。如下代码:一、FragmentActivity代码:Java code? package huahua.viewpager; import java.util.ArrayList;import android.os.Bundle;import android.preference.PreferenceFragment;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.app.FragmentTransaction;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.PagerTitleStrip;import android.support.v4.view.ViewPager;import android.util.Log; public class MainActivity extends FragmentActivity { private ViewPager m_vp; private fragment1 mfragment1; private fragment2 mfragment2; private fragment3 mfragment3; private ArrayList《Fragment》 fragmentList;//页面列表 ArrayList《String》 titleList = new ArrayList《String》();//标题列表 //通过pagerTabStrip可以设置标题的属性 private PagerTabStrip pagerTabStrip; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.v(“huahua“, “MainActivity--》onCreate()“); m_vp = (ViewPager)findViewById(R.id.viewpager); pagerTabStrip=(PagerTabStrip) findViewById(R.id.pagertab); mfragment1 = new fragment1(); mfragment2 = new fragment2(); mfragment3 = new fragment3(); fragmentList = new ArrayList《Fragment》(); fragmentList.add(mfragment1); fragmentList.add(mfragment2); fragmentList.add(mfragment3); titleList.add(“第一页 “); titleList.add(“第二页“); titleList.add(“第三页 “); m_vp.setOffscreenPageLimit(0); m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager())); //设置下划线的颜色 pagerTabStrip.setTabIndicatorColor(getResources().getColor(android.R.color.holo_green_dark)); //设置背景的颜色 pagerTabStrip.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_dark)); } public class MyViewPagerAdapter extends FragmentPagerAdapter{ public MyViewPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } @Override public Fragment getItem(int arg0) { return fragmentList.get(arg0); } @Override public int getCount() { return fragmentList.size(); } @Override public CharSequence getPageTitle(int position) { // TODO Auto-generated method stub return titleList.get(position); } }}这个是其中的一个Fragment,我想在这个Fragment页面上实现PreferenceFragment的效果,但是这样做行不通,Java code?1 getActivity().getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragement()).commit();这行代码以及下面的PrefsFragement静态类都是我期望实现的。真的不知道如何解决了。求教各位,万分感激。这个Fragment和PreferenceFragment并不是继承关系,这里的Fragment使用的是android.support.v4.app.Fragment下面的Fragment。Java code? package huahua.viewpager; import android.os.Bundle;import android.preference.PreferenceFragment;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup; public class fragment3 extends Fragment{ private View mMainView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.v(“huahua“, “fragment3--》onCreate()“); LayoutInflater inflater = getActivity().getLayoutInflater(); mMainView = inflater.inflate(R.layout.fragment3, (ViewGroup)getActivity().findViewById(R.id.viewpager), false); getActivity().getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragement()).commit();//希望添加的 } public static class PrefsFragement extends PreferenceFragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Log.v(“huahua“, “fragment3--》onCreateView()“); ViewGroup p = (ViewGroup) mMainView.getParent(); if (p != null) { p.removeAllViewsInLayout(); Log.v(“huahua“, “fragment3--》移除已存在的View“); } return mMainView; }}
更多文章:

oracle官网地址(oracle数据库的jdbc驱动在哪下载最好是具体的网址)
2025年3月15日 08:20

simpledateformat获取当前时间(在android中如何获取当前日期)
2025年3月24日 03:00

什么是爱国主义(为什么现在很多人,居然把热爱国家的人,称为“爱国贼”“爱国婊”爱国主义有错吗)
2025年2月24日 17:40

python ide哪个好用(写python有什么比较好的ide)
2025年3月24日 15:30

arraylist排序方法对比(如何给arraylist的元素排序,通过comparator比较器的方式来实现求高手解答!)
2025年3月16日 15:40

ultra boost(adidas ultra boost怎么鉴别真假)
2025年3月24日 04:00

免费ppt模版(免费的PPT模板及精美PPT设计制作的教程,有什么好的推荐吗)
2025年3月2日 00:00