2017-08-07 13 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の高さも幅もこのコードからもマージンからも設定されています。私はすでに何時間も費やしてきましたが、実用的な解決策は見つけられません。アンドロイドの線形レイアウトの高さと幅が設定されていません

+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

これはボタンをクリックして実行する完全なコードです!このコードに関連するものが1つもありません。 – Faiq

+0

しかし、私は新しいLinearLayoutを作成しています!私はViewByIdを見つけることになっていないよ – Faiq

+0

ちょうどそれをこのようにフォーマットすると言っている。 –

関連する問題