2014-01-08 2 views
1

У меня есть вкладка с двумя действиями.Старый экран не сразу исчезает

  1. ListActivity
  2. FragmentActivity

В моем listActivity у меня есть поле, что вы нажали начать новую активность

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) {     
    Obiekt item = (Obiekt)items.get(position); 

    Intent intent = new Intent(ListActivity.this, ActivityObjects.class);   
    startActivityForResult(intent, REQUEST_EVENT); 

    super.onListItemClick(l, v, position, id); 
} 

В первом случае, я нажал пункт списка и перейти к второе действие, когда пользователь нажал кнопку «Кнопка« Назад », исчезнет, ​​и отобразится listView.

Во втором случае я нажал вкладку «MapActivity» и вернусь на главную вкладку «ListActivity». Я нажал на пункт ListView и перейти к другой деятельности, когда пользователь нажал кнопку «Назад» на экране висит около 2 секунды и появляется ListView ...

Это мой XMP файл:

<fragment 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 

INIT mapActivity:

FragmentManager myFragmentManager = getSupportFragmentManager(); 
myMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.map); 
myMap = myMapFragment.getMap(); 

А как добавить вкладки в TabHost:

private void addMap(String labelId, Class<?> c) { 
     TabHost tabHost = getTabHost(); 
     Intent intent = new Intent(this, c); 
     TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

     View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tabs, getTabWidget(), false); 
     TextView title = (TextView) tabIndicator.findViewById(R.id.title); 
     title.setText(labelId); 

     spec.setIndicator(tabIndicator); 
     spec.setContent(intent); 
     tabHost.addTab(spec); 
} 

Android 2.3.3 У меня нет этой проблемы на android 4.0

ответ

0

Вы можете переопределить метод кнопки «Назад», чтобы показать предыдущее действие и уничтожить фрагмент карты.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    Log.d("MainActivity", "onKeyDown"); 
    if (keyCode == KeyEvent.KEYCODE_BACK) 
    { 
    Intent i = new Intent(MainActivity.this, 
    ListActivity.class); 
    startActivity(i); 
    MapActivity.this.finish();     
    return false; 
    } 
    else 
    { 
    return super.onKeyDown(keyCode, event); 
    } 
} 
+0

Я думаю, что это идея, но я потерял данные и память, при создании нового процесса – Unmerciful

+0

Вы можете использовать SharedPreferences для сохранения данных. – Aiapaec

 Смежные вопросы

  • Нет связанных вопросов^_^