加载完整活动后动态绘制50个按钮

时间:2013-09-26 09:02:23

标签: android performance android-custom-view

这是在创建我的活动时,在设置内容视图后,我调用了LoadButton()。

        @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()函数。

任何想法如何做到这一点?

4 个答案:

答案 0 :(得分:1)

将此代码粘贴到您的活动类块中:

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

答案 1 :(得分:0)

根据活动生命周期,您必须在onStart覆盖方法中调用LoadButtons。因为活动在这种状态下可见。

答案 2 :(得分: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
   }  

答案 3 :(得分:0)

您可以将按钮设置为不可见,如果您获取数据,则可以通过AsyncThread更新UI。这不是最好的方式,但它的工作原理。否则使用而不是Buttons一个CustomListView。