2013-09-26 25 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。