Я хочу, чтобы элемент 1 checkBox с editText был горизонтальным, а элемент 2 - с editText вертикальным с предыдущим элементом 1 cb и et1. как это
(элемент 1 cb, et1)
(элемент 2 cb, et2)
(элемент 3 cb, et3)
(элемент 4 cb, et4)
, но с использованием следующего кода у меня возникла исключительная ситуация java.lang.IllegalStateException: указанный дочерний элемент уже имеет родителя.Сначала вы должны вызвать removeView () для родительского объекта ребенка.
И когда я удаляю эту строку dialog_layout1.addView (dialog_layout2); исключение не отображается, и я достигаю этого
что я делаю не так?
Вот файл активности EnterRecordActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enter_record);
AlertDialog.Builder builder = new AlertDialog.Builder(EnterRecordActivity.this);
view = getLayoutInflater().inflate(R.layout.select_contributor_dialog,null);
dialog_layout1 = view.findViewById(R.id.dialog_layout1);
dialog_layout2 = view.findViewById(R.id.dialog_layout2);
dialog_layout2.addView(cb(getApplicationContext(),"item 1"));
dialog_layout2.addView(editText(getApplicationContext(),""));
dialog_layout1.addView(dialog_layout2);
dialog_layout2.addView(cb(getApplicationContext(),"item 2"));
dialog_layout2.addView(editText(getApplicationContext(),""));
dialog_layout1.addView(dialog_layout2);
builder.setView(view);
dialog = builder.create();
dialog.show();
}
public CheckBox checkBox(Context context, String text){
final ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
final CheckBox checkBox = new CheckBox(context);
checkBox.setLayoutParams(layoutParams);
checkBox.setTextSize(19);
checkBox.setTextColor(Color.rgb(0,0,0));
checkBox.setText(text);
return checkBox;
}
public EditText editText(Context context, String text){
final ViewGroup.LayoutParams lps = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
final EditText editText = new EditText(context);
editText.setLayoutParams(lps);
editText.setTextColor(Color.parseColor("#009788"));
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setEms(3);
editText.setMaxEms(3);
editText.setTextSize(18);
}
Здесьэто файл XML, который я надуваю select_contributor_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/title_color"
android:theme="@style/CustomTheme"
android:id="@+id/a">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/contributor"
android:textColor="@color/dialog_box_title"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="RtlSymmetry"
android:paddingStart="25dp"
android:paddingTop="15dp"
android:layout_alignParentStart="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/amount"
android:textColor="@color/dialog_box_title"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="RtlSymmetry"
android:paddingEnd="35dp"
android:paddingTop="15dp"
android:layout_alignParentEnd="true"
android:layout_alignEnd="@+id/text1"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent"
android:layout_below="@+id/text1">
<LinearLayout
android:id="@+id/dialog_layout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/dialog_layout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>