динамическое добавление нескольких макетов Android

Я хочу динамически добавлять текстовое представление при нажатии кнопки. Я реализовал это, но при добавлении его поверх написания предыдущего. Что-то не так с моим кодом?

imGbtn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                int id =0;
                final String data   =   textView.getText().toString();
                //childHolder.title.setText(data);
                 LinearLayout ll = new LinearLayout(mContext);
                 ll.setOrientation(LinearLayout.VERTICAL);
                 ll.setId(id);
                 tvll.addView(ll);
                // TextView tv1 = new TextView(mContext);
                // tv1.setText("Dynamic layouts ftw!");
                // ll.addView(tv1);

                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                layoutParams.setMargins(25, 20, 25, 10);
                TextView tv= new TextView(mContext);
                tv.setId(id);
                tv.setText(data);
                ll.addView(tv,layoutParams);
                textView.setText("");

            }
        });

person user2291423    schedule 16.05.2013    source источник


Ответы (2)


следующий код добавляет Edittext в linearlayout onclick

public class ViewOnClick extends Activity {
    LinearLayout.LayoutParams layoutParams;
    LinearLayout ll;
    static int i;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button b = (Button)findViewById(R.id.Button01);

        b.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {


     LinearLayout ll = new LinearLayout(mContext);
                 ll.setOrientation(LinearLayout.VERTICAL);
                 ll.setId(id);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
                layoutParams.setMargins(25, 20, 25, 10);
                EditText view = new EditText(ViewOnClick.this);             
                view.setText(++i+" view");
                ll.addView(view, layoutParams); 

            }});
    }
}
person Sagar Maiyad    schedule 16.05.2013

Я бы предложил определить LinearLayout внутри макета xml. Создайте объект в Java, а затем добавьте текстовое представление при нажатии кнопки в LinearLayout.

 <LinearLayout
            android:id="@+id/relatedChannels"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>

Ява

 LinearLayout cat_linear=(LinearLayout) findViewById(R.id.list_Category);
    TextView tv = new TextView(context);
    tv.setText(category.get(i).getNAME());
    tv[i][i].setLayoutParams(new LinearLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    cat_linear.addView(tv);
person Dilip    schedule 16.05.2013