【问题标题】:Android ListView appears empty, but contains objectsAndroid ListView 显示为空,但包含对象
【发布时间】:2012-09-10 01:41:40
【问题描述】:

我的 android listview 有一个非常奇怪的问题。列表视图位于片段内,一切都在编译,我不再收到空指针错误,但列表视图显示为空。即使它看起来是空的,日志也说明列表视图有 385 个对象。我不明白为什么它是空的。我确实得到了一个蓝色片段,并且填充了列表视图。有什么想法吗?

我如何设置适配器:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabs_layout);
    initialiseTabHost(savedInstanceState);
    if (savedInstanceState != null) {
        mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab")); //set the tab as per the saved state
    }

    ActivePackages = getList();
    LayoutInflater inflater = (LayoutInflater)   this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        
    LinearLayout mContainer = (LinearLayout) inflater.inflate(R.layout.tab_frag1_layout, null);
    ListView activeList = (ListView) mContainer.findViewById(R.id.activelist);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, ActivePackages);
    Log.i("valueof activeList",String.valueOf(activeList.getCount())); //returns 0 
    activeList.setAdapter(adapter);
    adapter.notifyDataSetChanged();
    Log.i("valueof activeList",String.valueOf(activeList.getCount())); //returns 385. 
}

这是片段的 xml:

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

    <ListView 
        android:id="@+id/activelist"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:background="#0073fd">    
    </ListView>

</LinearLayout>

【问题讨论】:

  • 在将适配器设置为 listView 后执行此操作。 adapter.notifyDataSetChanged()
  • adapter.notifyDataSetChanged() 你有没有在 setAdapter 之后尝试过这个?
  • 感谢您的回复!我将其修改为与上面类似,但它仍然没有显示我的列表。
  • 列表/片段是否可见?
  • 是的,这就是我将其设为蓝色的原因。我能看到蓝色。

标签: java android xml android-layout android-listview


【解决方案1】:

在活动中,您设置了setContentView(R.layout.tabs_layout); tabs_layout,然后您在LinearLayout mContainer 中扩展了布局R.layout.tab_frag1_layout,但您尚未在tabs_layout 中添加mContainer

尝试在标签布局中设置mContainer

【讨论】:

  • 你会怎么做这样的事情?抱歉,我对 android 还很陌生。
猜你喜欢
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
  • 1970-01-01
相关资源
最近更新 更多