Alertdialog 内にスクロール可能なテキストビューが必要です。これは、alertDialog 内で膨らませるスクロールビューの xml です。「IllegalStateException: 指定された子にはすでに親があります。最初に子の親で removeView() を呼び出す必要があります。」というエラーが表示され続けます。
私のレイアウトに何か問題があるのでしょうか?レイアウトは一度しか使用していないためです。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/invalid_recipients"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dip"
android:layout_marginRight="16dip"
android:layout_marginTop="4dip"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</ScrollView>
編集: ダイアログを膨張させ、onPostExecute メソッドの AsyncTask でテキストビューにアクセスしています。これがそのメソッドの最初のビットです。
@Override
protected void onPostExecute(Void v) {
if (!invalidRecipientEmails.isEmpty()) {
AlertDialog.Builder certBuilder = new AlertDialog.Builder(
MessageCompose.this);
final View recipientsLayout = getLayoutInflater().inflate(R.layout.message_recipient_scrollview, null);
final TextView recipientsTextView = (TextView) recipientsLayout.findViewById(R.id.invalid_recipients);
recipientsTextView.setText(invalidRecipientsString);
certBuilder.setView(recipientsTextView);
// set rest of alertdialog attributes
}
}