我有一個循環向RelativeLayout添加可變數量的視圖,並且我想設置一些規則,例如BELOW
,我的問題是我使用標籤動態命名對象,並使用我需要的addRule()
方法使用一個ID,所以我試圖設置一個ID每次循環運行,這不是第一次。如何在充滿View的循環內動態使用addRule()和標記?
這是我的代碼:
for(int i = 1; i <= kNumberofViews; i++){
View = new MyView(context);
RelativeLayout.LayoutParams params = new LayoutParams(kViewWidth, kViewHeight);
params.setMargins(kMarginLeft, kMarginTop, kMarginRight, kMarginBottom);
params.addRule(CENTER_HORIZONTAL);
if (i != 1){
MyView view = (MyView)view.findViewWithTag(i-1);
view.setId(i);
params.addRule(RelativeLayout.BELOW, view.getId());
}
View.setTag(i);
View.setBackgroundColor(Color.GREEN);
System.out.println("View " + i +" added correctly");
addView(View, params);
}
我怎樣才能解決呢?
編輯:
05-18 14:57:19.549: E/AndroidRuntime(5500): FATAL EXCEPTION: main
05-18 14:57:19.549: E/AndroidRuntime(5500): java.lang.RuntimeException: Unable to start activity ComponentInfo{me.gabrielesteban.app/me.gabrielesteban.app.MyRelativeLayoutTest}: android.view.InflateException: Binary XML file line #7: Error inflating class me.gabrielesteban.app.GD.MyRelativeLayout
05-18 14:57:19.549: E/AndroidRuntime(5500): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
05-18 14:57:19.549: E/AndroidRuntime(5500): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357)
05-18 14:57:19.549: E/AndroidRuntime(5500): at android.app.ActivityThread.access$600(ActivityThread.java:153)
編輯2:
我認爲這個問題是在下面的行MyView view = (MyView)view.findViewWithTag(i-1);
,是這條線是否正確?
但是,我認爲,一個int不能爲空,且ID爲一個int ... –
充氣包含這個循環的看法時,我花了一個異常,我將張貼logcat的輸出 –