我想添加元素到一個LinearLayout UI已經成功地在一個片段的onCreateView()方法膨脹。動態添加一個元素數組到一個UI
下面是onActivityCreated()方法,我試圖在UI中添加更多元素。
用戶界面爲體積計算提供輸入,但我不知道在運行時需要多少維來計算體積。維數由我的VolumeCalculation類提供,具體取決於calcId。
在調試,在爲循環應用程序崩潰只要我嘗試在dimHLayouts [dimNumber]中設置任何東西(例如dimHLayouts [dimNumber] .setId(100 + dimNumber);)。我試着先交換我設置的屬性。無論我嘗試首先設置哪個屬性,只要嘗試設置屬性,就會發生此故障。
我也用了android.util.Log工具,插入一噸原木的嘗試,看看發生了什麼事情,但我仍然處於虧損狀態,因爲一切都到這一點,似乎按預期工作。任何幫助將不勝感激。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// Get the volume Calculation Type from the bundle passed to this fragment
Bundle bundle = this.getArguments();
int calcId = bundle.getInt("CalcType");
// Create a calculation object
VolumeCalculation calc = new VolumeCalculation(ApplicationContextProvider.getContext());
int calcDimensionCount = calc.getCalcDimensionCount(calcId);
// Get the root LinearLayout of the inflated UI
LinearLayout inputUILayout = (LinearLayout)view.findViewById(R.id.layout_input);
// Create array of new LinearLayout objects
LinearLayout[] dimHLayouts = new LinearLayout[calc.getCalcDimensionCount(calcId)];
LinearLayout.LayoutParams lpDimHLayouts = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
// Create array of new TextView objects
TextView[] dimTextViews = new TextView[calc.getCalcDimensionCount(calcId)];
LayoutParams lpDimTextViews = new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f);
for(int dimNumber=0; dimNumber<calcDimensionCount; dimNumber++) {
// Setup the horizontal linear layout for the dimension
dimHLayouts[dimNumber].setId(100 + dimNumber);
dimHLayouts[dimNumber].setOrientation(android.widget.LinearLayout.HORIZONTAL);
dimHLayouts[dimNumber].setLayoutParams(lpDimHLayouts);
// Setup the dimension label TextView
dimTextViews[dimNumber].setId(150 + dimNumber);
dimTextViews[dimNumber].setLayoutParams(lpDimTextViews);
dimTextViews[dimNumber].setGravity(Gravity.RIGHT);
dimTextViews[dimNumber].setText(calc.getDimLabel(calcId, dimNumber));
// Add TextView to LinearLayout
dimHLayouts[dimNumber].addView(dimTextViews[dimNumber]);
// To Do: Setup an EditText and add it to the dimension LinearLayout
// Add dimension LinearLayout to the UI
inputUILayout.addView(dimHLayouts[dimNumber]);
}
super.onActivityCreated(savedInstanceState);
}
什麼是崩潰報告? –
LogCat說; 「線程退出與未捕獲的異常」 –
是的,這就是它總是說。 (她是這麼說的)。更高一點,代碼中的哪種類型的異常。例如。 http://www.javahotchocolate.com/tutorials/tut-images/android-logcat.png --- ClassCastException –