Visualizzazioni multiple non vengono visualizzate nella finestra di dialogo Avviso personalizzato

StackOverflow https://stackoverflow.com/questions/5865471

  •  28-10-2019
  •  | 
  •  

Domanda

Modificare: Lezione appresa: impostare l'orientamento o le cose potrebbero non essere visualizzate.

Secondo http://developer.android.com/guide/topics/ui/dialogs.html#customdialog Sto cercando di creare un dialogo di avviso personalizzato. In particolare, sto creando una finestra di dialogo che contiene più visualizzazioni (chiamate helpItemView) che contengono due textViews. Lo sto usando per creare una finestra di dialogo Avviso che contiene informazioni sulla guida sotto forma di coppie di contenuto di titolo.

Il mio problema è che solo il primo helptemview si presenta, anche se ne sto creando un sacco. C'è qualcosa nella finestra di dialogo Avviso che lo sta limitando? Ho fatto un casino con il mio codice e non ho avuto problemi a far apparire tutti gli helpItemViews quando sono stati collegati al layout lineare principale della mia attività, sembra che questo problema appaia solo nella finestra di dialogo Avviso.

Codice all'interno della mia attività:

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>

Helptemview.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>

Forse è qualcosa di stupido e mi manca solo, non lo so. Qualsiasi pensiero/ aiuto sarebbe molto apprezzato. Oh, sto sviluppando su Android 1.6 se questo fa qualche differenza. Sono aperto a convertirmi in una visione di List se funzionasse meglio (o affatto), ma mi piacerebbe comunque sapere cosa c'è che non va con il codice corrente se qualcuno può capirlo.

È stato utile?

Soluzione

Penso che dovresti cambiare helpGroupOrientamento all'orizzontale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top