2017-08-07 118 views
-1
   //* Linear Layout * 
      LinearLayout linearLayout = new LinearLayout(this); 
      linearLayout.setTag("linearLayout" + Integer.toString(id)); 
      linearLayout.setOrientation(LinearLayout.VERTICAL); 
      linearLayout.setBackgroundResource(R.drawable.background_border_1); 
      linearLayout.setGravity(Gravity.CENTER_VERTICAL); 

      LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(300, 70); 
      layoutParams.setMargins(20, 10, 20, 10); 

      linearLayout.setWeightSum(10); 
      linearLayout.setLayoutParams(layoutParams); 

      Toast.makeText(getBaseContext(), Integer.toString((int)linearLayout.getWeightSum())+ ", " + Integer.toString(linearLayout.getHeight()) + ", " + Integer.toString(linearLayout.getWidth()), Toast.LENGTH_LONG).show(); 

      //* Edit Text * 
      EditText editText = new EditText(this); 
      editText.setTag("editText" + Integer.toString(id)); 
      layoutParams.width = LinearLayout.LayoutParams.WRAP_CONTENT; 
      layoutParams.height = 50; 
      layoutParams.setMargins(10, 0, 10, 0); 
      layoutParams.weight = 2; 
      editText.setEms(10); 
      editText.setInputType(InputType.TYPE_CLASS_NUMBER); 
      editText.setLayoutParams(layoutParams); 
      editText.setGravity(Gravity.CENTER); 

      //* Text View * 
      TextView textView = new TextView(this); 
      textView.setTag("textView" + Integer.toString(id)); 
      layoutParams.height = 50; 
      layoutParams.setMargins(10, 0, 10, 0); 
      layoutParams.weight = 4; 
      textView.setLayoutParams(layoutParams); 
      textView.setGravity(Gravity.CENTER); 
      textView.setText("Credit Hours"); 

      //* Spinner * 
      Spinner spinner = new Spinner(this); 
      spinner.setTag("spinner" + Integer.toString(id)); 
      layoutParams.width = 50; 
      layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT; 
      spinner.setGravity(Gravity.FILL_VERTICAL | Gravity.CENTER | Gravity.CENTER_VERTICAL); 
      layoutParams.setMargins(10, 0, 10, 0); 
      layoutParams.weight = 4; 
      spinner.setLayoutParams(layoutParams); 

      linearLayout.addView(editText); 
      linearLayout.addView(textView); 
      linearLayout.addView(spinner); 

      llSubjectsContainer = (LinearLayout) findViewById(R.id.llSubjectsContainer); 
      llSubjectsContainer.addView(linearLayout); 

这是我的代码,但它不工作,因为它应该工作。但linearLayout的高度和宽度都是从这个代码或页边距设置的。我已经花了几个小时,但没有找到任何工作解决方案。Android的线性布局的高度和宽度没有设置

+0

你确定你把这段代码保存在onCreate()中吗? –

+0

不,我希望这个按钮点击工作 – Faiq

回答

0

确保您将变量初始化为onCreate函数的外侧,并在其他函数中使用它们。

public class ExampleActivity extends AppCompatActivity { 

    LinearLayout mLayout; //Initialize it here 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     buttonClick(); 
    } 

    public void buttonClick(){ 
     mLayout = (LinearLayout) findViewById(R.id.layout); 
     mLayout.setOrientation(LinearLayout.VERTICAL); 
     //Make like this and try! 
    } 
} 
+0

这是完成的代码,它执行一个按钮点击!与此代码相关的缺少一件事情。 – Faiq

+0

但我正在创建新的LinearLayout!我不应该找到ViewById – Faiq

+0

只是说这样来格式化它。 –