android listview下方的按钮

时间:2013-12-04 19:14:20

标签: 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

编辑: 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) {

        }
    });
}

}

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

问题是您将此布局传递到ListView的每个布局:

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:android.R.layout.simple_list_item_1中使用这个布局。

对于按钮重力,我认为你应该使用:

android:layout_gravity="center_horizontal|bottom"

不要忘记从上面发布的布局中删除textview,因为你不再需要它了..