旧屏幕不会立即消失

时间:2014-01-08 15:10:28

标签: android google-maps tabactivity

我有两个活动的tabActivity。

  1. ListActivity
  2. FragmentActivity
  3. 在我的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上的项目并转到另一个Activity,当用户点击“返回按钮”时,屏幕挂起大约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上没有这个问题

1 个答案:

答案 0 :(得分:0)

您可以覆盖后退按钮的方法以显示上一个Activity并销毁地图片段。

@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);
  }
}