2010-07-28 8 views
3

J'ai une activité ListView et je veux un EditText (et finalement un bouton avec lui) pour afficher au-dessus.EditText n'affiche pas au-dessus de ListView

Je crois que mon xml est bien, mais pour une raison quelconque le EditText ne s'affiche pas. Le ListView prend tout l'écran :(

Voici ce que mon XML ressemble à:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <EditText 
     android:id="@+id/newitemtext" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:hint="@string/add_new_item" 
    android:maxLines="1" 
    /> 
    <ListView 
     android:id="@+id/android:list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
    /> 
    <TextView 
     android:id="@+id/android:empty" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/inbox_no_items" 
    /> 
</LinearLayout> 

Toutes les idées

Remarque: Dans l'onglet de mise en page du fichier xml dans Eclipse, les salons EditText . Quand je lance mon application dans l'émulateur, il ne

Merci pour votre temps

Mise à jour:.

Voici où je mets le point de vue du contenu dans ma méthode onCreate

m_aryNewListItems = new ArrayList<MyListItem>(); 
m_Adapter = new MyListAdapter(this, R.layout.layout_list, m_aryNewListItems); 
setListAdapter(m_Adapter); 

Voici mon ArrayAdapter étendu:

private class MyListAdapter extends ArrayAdapter<MyListItem> { 

// items in the list 
private ArrayList<MyListItem> m_items; 

// constructor 
public MyListAdapter(Context context, int textViewResourceId, ArrayList<MyListItem> items) { 
     super(context, textViewResourceId, items); 
     this.m_items = items; 
} 

// get specific list item 
public MyListItem getItem(int position) { 
    if (m_items.size() > position) { 
     return m_items.get(position); 
    } 
    else { 
     return null; 
    } 
} 

/* 
* Update screen display 
*/ 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    // get the View for this list item 
    View v = convertView; 
    if (v == null) { 
     LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     v = vi.inflate(R.layout.layout_list_item, null); 
    } 

    // get the next MyListItem object 
    MyListItem lstItem = m_items.get(position); 

    // set up the list item 
    if (lstItem != null) { 
     TextView txtItem = (TextView) v.findViewById(R.id.list_itemname); 
     TextView txtQty = (TextView) v.findViewById(R.id.list_itemqty); 
     TextView txtPlace = (TextView) v.findViewById(R.id.list_place); 

     // set item text 
     if (txtItem != null) { 
      txtItem.setText(lstItem.getItemName()); 
     } 

     // set qty text 
     String strQtyText = "Qty: "; 
     if (txtQty != null && lstItem.getItemQty() != -1) { 
      BigDecimal bd = new BigDecimal(lstItem.getItemQty()); 
      strQtyText += bd.stripTrailingZeros().toString(); 
      if(lstItem.getItemQtyUnitId() != -1) { 
       strQtyText += " " + lstItem.getItemQtyUnitTextAbbrev(); 
      } 
     } 
     else { 
      strQtyText += "--"; 
     } 
     txtQty.setText(strQtyText); 

     // set place text 
     if (txtPlace != null && lstItem.getPlaceName() != null) { 
      txtPlace.setText(lstItem.getPlaceName()); 
     } 
    } 

    // return the created view 
    return v; 
} 

}

+0

Y at-il un code qui est réarrangeant les vues ou peut-être l'activité est la fixation d'un xml différent car il est afficher le contenu? –

+0

Merci pour votre réponse. J'utilise le xml correct comme vue de contenu. J'ai étendu ArrayAdapter et fait le mien. Je vais éditer l'OP et publier le code pour mon ArrayAdapter étendu. – Andrew

+0

OP mis à jour avec définition ArrayAdapter étendue – Andrew

Répondre

3

ajouter un android:layout_weight="1" à ListView xml

donc, cette chose:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:gravity="bottom" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <EditText android:id="@+id/filter" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:inputType="textAutoComplete" 
      android:layout_weight="1" 
      /> 

     <Button android:id="@+id/sort" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/sort" 
      /> 

     <Button android:id="@+id/add_all" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/add_all" 
      /> 

     <Button android:id="@+id/add" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/add" 
      /> 
    </LinearLayout> 

    <GridView android:id="@+id/myGrid" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 

     android:verticalSpacing="15dp" 
     android:horizontalSpacing="10dp" 

     android:numColumns="auto_fit" 
     android:columnWidth="60dp" 

     android:gravity="center" 
     /> 

</LinearLayout> 

produit ceci:

alt text

+0

Merci, parfait – Andrew

+0

salut zed_0xff, pouvez-vous s'il vous plaît dites-moi comment avez-vous arrangé les images sur gridview.S'il vous plaît dites-moi la taille de l'image et comment avez-vous écrit le texte là-dessus – Shruti