Мои динамически созданные виджеты не отображаются - PullRequest
0 голосов
/ 03 марта 2012

Мой код компилируется нормально, и когда я запускаю Activity, отображается связанная с ней компоновка, но виджеты, которые я динамически создаю после этого в 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>

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Вам не нужно аннулировать представления, которые вы добавили в onCreate ().Не имея XML-файла макета, также есть некоторая догадка, чтобы попытаться ответить на сообщение уверенно.Вы пытались использовать TextView вместо флажка?

1 голос
/ 03 марта 2012

вам может потребоваться аннулировать весь вид вручную, чтобы получить желаемый результат, поэтому попробуйте добавить эту строку в конец:

svh.invalidate();
...