Я создал настраиваемый вид холста и хотел добавить это настраиваемое представление холста в качестве элемента прядильщика в Android Спиннер. это мой Custom Canvas View
public class Pattern extends View {
/**
* Instance of Paint.
*/
private Paint mPaint;
/**
* Instance of DashPathEffect.
*/
private DashPathEffect mDashPath;
/**
* Activity context to obtain color information.
*/
private Resources mResources;
/**
* Constructor for Pattern.
*/
public Pattern(Context context) {
super(context);
mPaint = new Paint();
mDashPath = new DashPathEffect(new float[]{20, 20}, (float) 4.0)
}
@Override
public final void onDraw(final Canvas canvas) {
mPaint.setColor(Color.GRAY);
mPaint.setPathEffect(mDashPath);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawRect(10, 10, 150, 340, mPaint);
}
и это мой метод getView customAdapter
@Override
public final View getView(final int position, final View convertView, final ViewGroup parent) {
View itemView = convertView;
View areaItemView = objectItems.get(position);
if (itemView == null) {
itemView = LayoutInflater.from(mContext).inflate(R.layout.custom_pattern_layout,parent, false);
}
LinearLayout simpleLinearLayout = ((ViewGroup) itemView).findViewById(R.id.custom_pattern_holder);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
areaItemView.setLayoutParams(params);
areaItemView.invalidate();
simpleLinearLayout.addView(areaItemView);
return itemView;
}
Это макет, который я создал для представления элементов адаптера.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/elctrode_viewing_option"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"/>
Я передаю список своего настраиваемого объекта холста в качестве данных своему настраиваемому адаптеру и пытаюсь отобразить эти объекты как элементы счетчика, но когда я запускаю этот код, я вижу счетчик в пользовательском интерфейсе, но при нажатии на стрелку раскрывающегося списка , приложение упало со следующей ошибкой
E / RunTimeExceptionHandler: java .lang.IllegalStateException: у указанного дочернего элемента уже есть родитель. Сначала вы должны вызвать removeView () для родительского элемента ребенка.
Я знаю, я написал неправильный код, который вызывает эту проблему. Укажите правильный способ выполнения этого требования.
Спасибо.