在fragment怎么用getlayoutinflater
1个回答
推荐于2016-05-17 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464983
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
用了一个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;
}
}
现在我想讲其中一个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;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询