java - ListActivity - 列表未显示

标签 java android

当我尝试设置 listAdapter 或适配器(#setListAdapter(), #getListView().setAdapter())时,它不显示。当我尝试单独设置 ListView 时,它工作得很好。当我在 #runOnUiThread() 中运行它时,它也不起作用。为什么我的列表没有显示?

以下是我的代码

public class ShopActivity extends ListActivity {

    private Intent mainIntent = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.shop);
        mainIntent = new Intent(this, MainActivity.class);

        String[] items = {"Test"};
        ArrayAdapter adapter = new ArrayAdapter<>(this,
        android.R.layout.simple_list_item_1, items);

        //ListView view = (ListView) findViewById(R.id.list);

         //view.setAdapter(adapter);
        getListView().setAdapter(adapter);
    }

    public void onBack(View view) {
        startActivity(mainIntent);
    }

}

编辑:

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:weightSum="1">

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="450dp"
        android:layout_gravity="center_horizontal"
        android:layout_centerHorizontal="true"
        android:textAllCaps="false"
        android:text="@string/button_back"
        android:onClick="onBack"
        android:id="@+id/back"
/>

<TextView
        android:id="@android:id/empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="EMPTY"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="-500dp"/>


<ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.11"/>

</LinearLayout>

最佳答案

将你的线性布局高度设置为match_parent,并去掉重量,因为它用于比率并且看起来不像你正确使用它。添加 -500 边距并不是正确的方法。将线性布局开始替换为以下内容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent">

如果您希望 TextView 位于顶部,请将其添加到按钮之前,然后向按钮添加边距以获得 TextView 的边距。如果您希望后退按钮位于 TextView 旁边,请将它们添加到水平方向的线性布局中,这会将它们并排添加到顶部。

关于java - ListActivity - 列表未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35875653/

相关文章:

java - java如何识别数组的末尾在哪里?

android - 我们可以使用 Android 支持库将 Intent.EXTRA_ALLOW_MULTIPLE 用于旧版本的 Android API 级别吗?

java - 在 Android 中从麦克风录制 wav 文件 - 问题

android - 在android中同时为4个不同图像设置动画

AutoCompleteTextView 的 Android 自定义布局

java - 如何在android中验证单选按钮?

java - 即使 subscribeOn() 在另一个线程上调用,Observable 也会在主线程上运行

java - Mockito 并不是在 mock 我的背景

java - 应用程序服务器可能已经在主机 localhost 上运行

Java 删除空的 XML 标签