You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android课表应用编译正常但运行无预期输出问题求助

嘿,我瞅了你的代码,发现问题出在哪了!核心原因是你在onCreate里压根没调用setupListView()方法,这就导致ListView连适配器都没绑定,自然啥内容都显示不出来。除此之外还有几个小细节需要调整,我给你一步步说清楚:

问题诊断与修复步骤

1. 最关键的修复:调用列表初始化方法

你已经写了setupListView()方法来给ListView设置适配器,但在onCreate里完全没执行它!赶紧在onCreate里加上这一行:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setupUIViews();
    initToolbar();
    setupListView(); // 就是这行!加上后ListView才会加载数据
}

2. 确认字符串数组资源存在

确保你在res/values/arrays.xml里定义了对应的字符串数组,不然getResources().getStringArray()会拿不到数据,列表照样空着。如果没有这个文件,就新建一个,内容如下:

<resources>
    <string-array name="Main">
        <item>Timetable</item>
        <item>Subjects</item>
        <item>Faculty</item>
        <item>Settings</item>
    </string-array>
    <string-array name="Description">
        <item>View your weekly timetable</item>
        <item>Manage your subjects</item>
        <item>Contact faculty members</item>
        <item>App settings and preferences</item>
    </string-array>
</resources>

3. 修复CardView的命名空间问题

你的main_activity_single_item.xml里的CardView用了android:elevation,但support库的CardView需要用app命名空间的属性,而且根布局还缺了命名空间声明,修改后如下:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" <!-- 补上这个命名空间 -->
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="@color/colorAccent"
    app:elevation="4dp"> <!-- 把android:elevation改成app:elevation -->

    <!-- 内部的RelativeLayout和控件保持不变 -->
</android.support.v7.widget.CardView>

4. 优化主布局的高度属性

activity_main.xml里的根RelativeLayout高度设成了wrap_content,这可能导致ListView无法占满屏幕,改成match_parent更合理:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" <!-- 这里改成match_parent -->
    tools:context="wahab.com.timetabledemo.MainActivity">

    <!-- 内部Toolbar和ListView保持不变 -->
</RelativeLayout>

做完这些修改后,重新编译运行,你的列表内容应该就能正常显示出来了!


内容的提问来源于stack exchange,提问作者wahab memon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:54:42