我想添加元素到一个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 –