2011-08-25 117 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。 –