我有一个片段DefaultMapFragment
,它扩展了片段,让我的布局充气。
这个片段位于一个活动ActivityMain
内。当我搜索它时会在一个活动中进行搜索,因此布局通胀会一次又一次地发生。
这是我的代码,用于描述我正在做的事情:
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_geofence_layout);
Intent mIntent = getIntent();
if(!(mIntent.getAction().equals(Intent.ACTION_SEARCH)))
{
mFragmentManager = getFragmentManager();
mTransaction = mFragmentManager.beginTransaction();
mTransaction.add(R.id.add_layout, new DefaultMapFragment(),"defaultMapFragment").commit();
mGeocoder = new Geocoder(this, Locale.getDefault());
}
handleIntent(getIntent());
}
所以我认为如果我正在搜索这个条件就足够了,但它根本不会膨胀,所以我的地图不会显示。
在这种情况下我该怎么做?
答案 0 :(得分:0)
您可以使用标志布尔变量并初始将其设置为false。当您第一次搜索时将其设为真,并且在每次搜索中只检查其状态是否膨胀。
答案 1 :(得分:0)
您始终在创建新片段。
写下类似的内容:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.add_geofence_layout);
Intent mIntent = getIntent();
if(!(mIntent.getAction().equals(Intent.ACTION_SEARCH)))
{
Fragment fragment = fm.findFragmentByTag("defaultMapFragment");
if (fragment == null) {
mFragmentManager = getFragmentManager();
mTransaction = mFragmentManager.beginTransaction();
mTransaction.add(R.id.add_layout, new DefaultMapFragment(),"defaultMapFragment").commit();
mGeocoder = new Geocoder(this, Locale.getDefault());
}}
handleIntent(getIntent());
}