Я прочитал множество потоков в findViewById, возвращающих ноль для пользовательского класса, и я не смог точно определить свою ошибку.У меня есть основная деятельность, которая раздувает фрагмент (LinearLayout).Я хочу заполнить этот LinearLayout несколькими из моих пользовательских ImageViews, используя обработчик.Обработчик в основном создает каждый из пользовательских ImageView и помещает их в ArrayList, который можно прочитать в основном упражнении.
В моем пользовательском ImageView у меня есть следующие конструкторы:
public CustomView(Context context) {
super(context);
}
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomView(Context context, int ID, String c, String s, int relID, int relAngle,
Float absX, Float absY, int [] inNumbers ) {
super(context);
this.setId(ID);
color = c;
size = s;
x_pos = absX;
y_pos = absY;
dependence = inNumbers;
rel_id = relID;
rel_angle = relAngle;
}
Тогдав своем классе обработчика я делаю следующее:
customViews = new ArrayList<CustomView>();
for ( int k = 0; k < numberOfCustomViews; k++ ){
CustomView w = new CustomView(ctx,
scanner.nextInt(), //ID
scanner.next(), //Color
scanner.next(), //Size
scanner.nextInt(), //Relative ID
scanner.nextInt(), //Relative angle
scanner.nextFloat(), //Absolute x (percent)
scanner.nextFloat(), //Absolute y (percent)
new int[] {scanner.nextInt(), //Dependence numbers
scanner.nextInt()});
customViews.add(w);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
w.getSizeAsResource(), w.getSizeAsResource());
w.setLayoutParams(lp);
Log.d(TAG, "CustomView added!");
}
В своем основном задании я делаю следующее, чтобы проверить, доступен ли первый CustomView:
customViewTest = (CustomView) (findViewById(customViewHandler.customViews.get(1).getId()));
if ( customViewTest == null )
Toast.makeText(this, "customViewTest == null", Toast.LENGTH_LONG).show();
Это всегда показывает тост,Что мне здесь не хватает?Нужно ли мне надувать или что-то?Должна быть предусмотрена возможность добавления пользовательских видов в макет программно.