2013-12-04 11 views
0

Итак, я пробовал все остальные сообщения, и это не работает, может ли кто-нибудь сказать мне, почему кнопка получает pu в listview?Кнопка ниже android listview

Код для моего макета:

<FrameLayout xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="#5eff6c" 
tools:context=".FriendActivity"> 


<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="50dp" 
    android:id="@+id/listView" 
    android:layout_gravity="center_horizontal|top" 
    android:background="#5eff6c" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/name" 
    android:layout_gravity="center_vertical" 
    android:textSize="16dp" 
    android:textIsSelectable="false" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="New Button" 
    android:id="@+id/button" 
    android:layout_gravity="center" /> 

</FrameLayout> 

Теперь это выглядит так: http://imgur.com/HOeQbXv,hDKOHug#0

Я хочу это: http://imgur.com/HOeQbXv,hDKOHug#1

Edit: Java код:

public class FriendActivity extends ListActivity { 

private static final String TAG_NAME = "name"; 
protected void onCreate(Bundle savedInstanceState) { 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 

    ArrayList<HashMap<String, String>> names = null; 
     try { 
      String test = new sendData().execute().get(); 
      JSONArray jArray = new JSONArray(test); 
      Log.d("NOOO", String.valueOf(test)); 

      names = new ArrayList<HashMap<String, String>>(); 
      JSONObject object; 
      for (int i = 0; i < jArray.length(); i++) { 
       object = jArray.getJSONObject(i); 
       Log.d("YES", String.valueOf(object)); 

       String name = object.getString(TAG_NAME); 

       HashMap<String, String> map = new HashMap<String, String>(); 

       map.put(TAG_NAME, name); 

       names.add(map); 
     } 

     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (ExecutionException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

    ListAdapter adapter = new SimpleAdapter(this, names, 
      R.layout.activity_friend, 
      new String[]{TAG_NAME}, new int[]{ 
      R.id.name}); 

    setListAdapter(adapter); 

    // selecting single ListView item 
    ListView lv = getListView(); 

    // Launching new screen on Selecting Single ListItem 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 

     } 
    }); 
} 

} 

Спасибо за помощь

+0

Можете ли вы разместить код Java, а также – user2511882

+0

Итак, это сделано. – MeIsOlsson

+0

Почему FrameLayout? – ramaral

ответ

1

Проблема заключается в том, что вы передаете, что расположение к каждому из макета ListView «s здесь:

ListAdapter adapter = new SimpleAdapter(this, names, 
      R.layout.activity_friend, 
      new String[]{TAG_NAME}, new int[]{ 
      R.id.name}); 

И то, что вы хотите сделать, это установить этот макет таким образом:

setContentView(R.layout.activity_friend); 

Таким образом, он будет настроен на активность, и ваша деятельность будет выглядеть так, как вы сделали в своем xml.

Также сделайте еще один простой макет с одним TextView и передайте его вашему адаптеру, таким образом, ваш ListView также будет иметь текст в нем. Или вы можете использовать этот макет из андроида: android.R.layout.simple_list_item_1.

Также для кнопки силы тяжести, я думаю, вы должны использовать:

android:layout_gravity="center_horizontal|bottom" 

И не забудьте удалить TextView из макета вы публикуемые выше, вам не нужно больше ..

+0

Где я могу установить «setContentView (R.layout.activity_friend)»; ? – MeIsOlsson

+0

В onCreate, сразу после: super.onCreate (savedInstanceState); – Cata

+0

Хорошо, но как заставить SimpleAdapter не использовать макет для каждого элемента списка? – MeIsOlsson

Смежные вопросы