【问题标题】:adding multiple layout dynamically android动态添加多个布局android
【发布时间】:2016-04-02 02:32:34
【问题描述】:

我想在单击按钮时动态添加文本视图。我已经实现了这一点,但是在添加它而不是写上一个时。我的代码有什么问题吗?

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("");

            }
        });

【问题讨论】:

    标签: android android-layout android-linearlayout


    【解决方案1】:

    以下代码在linearlayout onclick中添加Edittext

    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); 
    
                }});
        }
    }
    

    【讨论】:

      【解决方案2】:

      我建议在布局 xml 中定义 LinearLayout。在 Java 中创建对象,然后在 LinearLayout 中单击按钮时添加 textview。

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

      Java

       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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多