0

我的代碼編譯細,並且當我開始活動,則顯示其相關聯的佈局,但 窗口小部件我動態在OnCreate此後創建()不顯示。我的動態創建的窗口小部件不顯示

他們爲什麼不呢?

Eclipse不落入調試角度來看,他們根本就不會出現。

下面是相關代碼:

public class Authorize_Activity_DynamicControls extends Activity { 

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

     LinearLayout llay = new LinearLayout(this); 
     llay.setOrientation(LinearLayout.HORIZONTAL); 

     LinearLayout.LayoutParams llp = new LayoutParams(LayoutParams.WRAP_CONTENT,  
LayoutParams.WRAP_CONTENT); 
     llp.weight = 1.0f; 

     CheckBox cb = new CheckBox(getApplicationContext()); 
     cb.setText("1"); 
     cb.setLayoutParams(llp); 
     llay.addView(cb); 

     ScrollView svh = (ScrollView) findViewById(R.id.scrollViewHost); 
     svh.addView(llay); 
    } 

...這是佈局的xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" >  

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="2dip" 
      android:text="@string/demand" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="2dip" 
      android:text="@string/time" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="2dip" 
      android:text="@string/space" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="2dip" 
      android:text="@string/contact" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <ScrollView 
     android:id="@+id/scrollViewHost" 
     android:fillViewport="true" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" > 

    </ScrollView> 

</LinearLayout> 

回答

1

您可能需要整個視圖手動無效,以獲得期望的結果,所以嘗試添加這條線到底:

svh.invalidate(); 
+0

添加invalidate()沒有幫助,但我認爲它也不會損害任何東西,所以現在它就在那裏。 – 2012-03-04 00:09:32

+0

你可以嘗試一下嗎?你能否移除xml文件中的子LinearLayout部分(以便ScrollView是基本LinearLayout的唯一子部分),並檢查是否可以看到ScrollView以及動態添加到其中的LinearLayout? – Soham 2012-03-04 14:12:17

+0

好的,謝謝Soham,這有幫助 - 現在顯示動態添加的小部件。但是動態添加的小部件與xml中聲明的小部件顯示在相同的「行」中,我需要它們在它們自己的「行」上,在xml中聲明的小部件下面。我如何強制這種情況發生? – 2012-03-10 05:12:49

1

你不應該需要使你在onCreate()中添加的視圖無效。沒有XML佈局文件,它也是一些猜測,試圖自信地回答帖子。你有沒有嘗試過使用TextView而不是複選框?

+0

我需要的複選框。 – 2012-03-04 00:00:01

+0

我已將佈局文件添加到原始文章中;它呈現得很好 - 它是無法顯示的動態添加的東西。 – 2012-03-04 00:04:09

相關問題