Несколько представлений не отображаются в диалоговом окне оповещения - PullRequest
3 голосов
/ 03 мая 2011

Редактировать: Извлеченный урок: установить ориентацию или материал может не отображаться.

Согласно http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog Я пытаюсь создать настраиваемое диалоговое окно с предупреждением.В частности, я создаю диалог, который содержит несколько представлений (называемых HelpItemView), каждое из которых содержит два текстовых представления.Я использую это для создания диалогового окна с предупреждением, которое содержит справочную информацию в виде пар заголовок-контент.

Моя проблема в том, что отображается только первый HelpItemView, хотя я создаю их несколько.Есть ли что-то в диалоговом окне предупреждения, которое ограничивает это?Я покопался в своем коде, и у меня не было проблем с отображением всех HelpItemViews, когда они были присоединены к основному линейному макету моей деятельности, похоже, эта проблема появляется только в диалоговом окне с предупреждением.

Кодв моей деятельности:

private void createHelp() {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    Resources res = getResources();
    LinearLayout help_root = (LinearLayout)getLayoutInflater().inflate(R.layout.help_frame, null);
    LinearLayout help = (LinearLayout) help_root.findViewById(R.id.helpGroup);
    help.addView(new HelpItemView(this, res.getString(R.string.help_main_welcome), 
            res.getString(R.string.help_main_welcome_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.add_id), 
            res.getString(R.string.help_add_id_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.view_ids), 
            res.getString(R.string.help_view_ids_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.view_map), 
            res.getString(R.string.help_view_map_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.browse_plants), 
            res.getString(R.string.help_browse_plants_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.btnQuickIdentification), 
            res.getString(R.string.help_btnQuickIdentification_content)));
    help.addView(new HelpItemView(this, res.getString(R.string.btnOptions), 
            res.getString(R.string.help_options_content)));
    builder.setView(help_root);
    AlertDialog alert = builder.create();
    alert.show();   
}

helpframe.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ScrollView android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/helpGroup"></LinearLayout>
</ScrollView>
</LinearLayout>

HelpItemView.java

public class HelpItemView extends RelativeLayout {
private TextView m_vwItemTitle;
private TextView m_vwItemText;

public HelpItemView (Context context, String header, String content) {
    super(context);
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.help_item, this, true);
    m_vwItemTitle = (TextView) this.findViewById(R.id.helpItemHeader);
    m_vwItemText = (TextView) this.findViewById(R.id.helpItemText);
    setContent(header, content);
}

private void setContent(String header, String content) {
    m_vwItemTitle.setText(header);
    m_vwItemText.setText(content);
}

}

help_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dip">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/helpItemHeader"
android:textSize="20sp"
android:textStyle="bold"
android:layout_gravity="center"
></TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/helpItemText"
/>
</LinearLayout>

Может быть, это что-то глупое, и я просто скучаю по нему, я не знаю.Любые мысли / помощь будут наиболее ценнымиО, я работаю на Android 1.6, если это что-то меняет.Я открыт для преобразования в просмотр списка, если это сработает лучше (или вообще), но я все же хотел бы знать, что не так с текущим кодом, если кто-нибудь сможет это выяснить.

1 Ответ

3 голосов
/ 03 мая 2011

Я думаю, вам следует изменить ориентацию helpGroup на горизонтальную.

...