2013-10-12 102 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