2013-09-26 24 views
0

這是創建我的活動並設置內容視圖後,我打電話給LoadButton()。在完成活動加載後動態繪製50按鈕

 @Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

      Loadbuttons(); 
    } 


    public void LoadButtonss() 
     { 

      Here I am fetching data from database ,and plotting 50 buttons dynamically 
     } 

所以我的問題是:這是需要時間在加載活動。

任何想法如何LoadButtons()後加載完整的活動。它不應該等待ButtonLoad()函數。

任何想法如何做到這一點?

+0

怎麼樣運行的? – SKT

+1

如果您將代碼修改爲其中一個答案,您是否可以修復/更改您的問題中的代碼? – tomsv

回答

1

粘貼此代碼在您的活動類塊:

@Override 
protected void onStart() { 
    // TODO Auto-generated method stub 
     LoadButtons(); 
    super.onStart(); 
} 
+0

如果我會把super.onStart();在LoadButtons()之前; – Tejas

+0

super.onStart()首先運行超類方法。我想不管。 –

0

根據活動生命週期,您必須在onStart覆蓋方法中調用LoadButtons。因爲活動在這個狀態下將是可見的。

+0

你可以給我一些代碼示例或編輯我的答案?我是Android新手。 – Tejas

0

我會試試這個:在onCreate中加載按鈕並設置View不可見。在onResume中再次顯示。

View v; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

    v= findViewById(R.layout.main); 
    v.setVisibility(View.INVISIBLE); 

     Loadbuttons(); 
} 


@Override 
protected void onResume() { 
    v.setVisibility(View.VISIBLE); 
    super.onResume(); 
} 


public void LoadButtons() 
    { 
     FrameLayout layout = (FrameLayout) findViewById(R.id.MarkerLinearlayout); 
     //Here I am fetching data from database ,and plotting 50 buttons dynamically 
    } 
+0

然後讓你佈局成員變量,並從不可見變爲可見。佈局也是視圖;) – Forke

0

您可以設置的按鈕不可見的,如果你取數據,你可以通過AsyncThread更新UI。這不是最好的方式,但它的工作原理。否則,使用CustomListView代替Button。