我想要製作的應用程序有很多類似的LinearLayouts和textViews,需要以編程方式創建並按特定順序放置在屏幕上。返回佈局或視圖的方法
所以我決定定義一個返回一個元素的方法,而對於furthur的用法,我會把這個方法放在一些循環中來產生其他元素。但是當我以這種方式創建視圖或佈局時,沒有任何內容顯示或者有時候應用程序崩潰,就好像它已經被髮送到addView()。它只在我在onCreate()中創建視圖/佈局時才起作用,然後我在那裏使用它。所以,我可以使用該方法創建我的佈局/視圖的任何想法?因爲他們有太多的,它是不可能通過一個在的onCreate() 創建它們一個這裏的方法:
public LinearLayout createLinearLayout(){
TextView tv_day = new TextView(this);
tv_day.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
tv_day.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
tv_day.setGravity(Gravity.END);
tv_day.setText("27");
LinearLayout ll_horizontal = new LinearLayout(getBaseContext());
LinearLayout.LayoutParams ll_horizontal_params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
ll_horizontal.setLayoutParams(ll_horizontal_params);
ll_horizontal.setOrientation(LinearLayout.HORIZONTAL);
ll_horizontal.addView(tv_day);
return ll_horizontal;
}
,這是的onCreate(),它不與它一個TextView添加任何線性佈局:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_month_view);
LinearLayout ll= createLinearLayout();
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.activity_month_view);
mainLayout.addView(ll);
}