2011-08-25 37 views
0

我使用下面的代码填充screen.But它给运行异常。如何解决这个问题?来自Handler的Android setContentView?

java.lang.IllegalStateException:滚动型只能承载一个直接子

我的代码是:

public class MyClass extends Activity { 

ArrayList ALobj; 
Handler myHandler; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
context = this; 
ALobj=new ArrayList(); 
ALobj.add(...); 

myHandler = new Handler() { 
@Override 
public void handleMessage(Message msg) { 
    super.handleMessage(msg); 
    ALobj.add(....); 
    populate_screen(ALobj); 
} 
} 

    populate_screen(ArrayList ALobj); 

} 

private void populate_screen(ArrayList obj){ 

ScrollView scrl=new ScrollView(context); 

    LinearLayout llay=new LinearLayout(context); 
........ 
.......... 
............ 

    scrl.addView(llay); 
setContentView(scrl); 
} 

..... 
.......... 
............. 
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

switch (item.getItemId()) { 
case 1: 
Message msg = new Message(); 
myHandler.sendMessage(msg); 
break; 
} 
return super.onOptionsItemSelected(item); 
} 
} 

回答

1

你的例外是在你使用scrollview下的布局。您可以在scrollview不能嵌套布局只使用单个布局......

参考这个文档:

http://developer.android.com/reference/android/widget/ScrollView.html

+0

感谢您的回复。我知道这一点。我只在ScrollView中添加一个Linearlayout。 –

+0

请检查你的例外是指出,只有或显示代码.. –

+0

是的,它指出,只有 –

0

我觉得你把多个视图进入这就是为什么你得到这个滚动视图。尽量只放一个视图

+0

感谢您的回应。我只在scrollview中放置了一个LinearLayout。 –