2013-10-12 164 views
0

按钮单击事件我正在使用setContentView(R.layout.activity_main);它工作正常。Android布局加载两次

当,如果我尝试意图开始新的活动,startactivity命令加载布局的两倍,它看起来像布局加载正确,则再次加载1秒相同的布局。

开始活动之前其加载一次。

show.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    {   
     String selected = spinner0.getSelectedItem().toString(); 
     if(selected.equals("Item 2")) 
     { 
      Intent intent = new Intent(second_layout.this,MainActivity.class); 

      setContentView(R.layout.activity_main); 
      startActivity(intent); 
     } 
    } 
}); 
+1

为什么要改变旧的活动布局在开始之前,你的新活动? – Kuffs

+0

你为什么要在'onClick'监听器中再次设置布局? – GrIsHu

+0

对不起,我没有提到这种布局我的第二个布局不是我的主要活动。 – user2265473

回答

1

我猜这行是problem.-

setContentView(R.layout.activity_main); 

setContentView只会改变布局为当前活动,让你改变当前布局activity_main,然后你为MainActivity类打开Intent

只要删除该行。

+0

你不需要,启动'MainActivity'会改变你的布局。你应该在MainActivity中有一个'onCreate'方法,它调用'setContentView(R.layout.activity_main);' – ssantos

+0

我想我明白了。我正在尝试。好的,就像你说的那样,谢谢你! – user2265473

0

当你开始一个新的活动,也没有必要的setContentView的同时开始的意图。

这是入门将对加载布局的代码的意图。所以请删除这一行。

我希望,在你MainActivity.class,你将已经写的setContentView(R.layout.activity_main),这是足够的显示所需的布局。因此,请在启动意图时删除您包含的这一额外行。

+0

是的,我得到它,使用setcontentview并开始新的活动导致加载两次是的我删除该行它的工作感谢。 – user2265473

0

你不能启动你的第二个活动之前设置你的第一个活动你的第二个活动布局。它会自动在您的第二个活动的onCreate()方法中设置。所以你应该在你的MainActivity'sonCreate()方法中写setContentView(R.layout.activity_main);。只需将它从onClick监听器中移除即可。

onClick所以写如下:

show.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    {   
     String selected = spinner0.getSelectedItem().toString(); 
     if(selected.equals("Item 2")) 
     { 
      Intent intent = new Intent(second_layout.this,MainActivity.class); 
      startActivity(intent); 
     } 
    } 
}); 

而在你MainActivity你必须设置如下布局:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     } 
} 
+0

我在第二个布局上面写的代码不是我的主要活动,我最初忘记写它。 – user2265473

+0

@ user2265473标记正确的答案,如果它帮助你。谢谢.. – GrIsHu