2014-03-19 173 views
2

我正在做一个大学项目的第一个基本的android应用程序,我有一个名称的数组列表。我希望它被放入ListView。当我在xml文档中引入ListView时,我遇到的问题没有出现。我没有得到item1,子项目1等的基本模板。 然后当我设置数组播放列表视图仍然是空列表。下面我有XML文档android listview没有显示任何东西

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="277dp" 
     android:id="@+id/listView" android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" android:layout_marginTop="7dp" 
     android:layout_alignParentBottom="true"/> 
</RelativeLayout> 

那么这里就是Java代码:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    populateListView(); 
} 

private void populateListView() { 
    String[] myItems = {"frank","george","alice", "anna"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.main, myItems); 
    ListView list = (ListView)findViewById(R.id.listView); 
    list.setAdapter(adapter); 
} 

回答

2

你的问题是,你有两种不同的使用相同的布局R.layout.main
您将内容视图设置为setContentView(R.layout.main);,其中您的ListView是,但您也可以将此布局与您的适配器一起使用为new ArrayAdapter<String>(this, R.layout.main, myItems);
所以用你的代码,你没有任何项目布局来显示你的数组myItems。您需要为R.layout.item_layout创建另一个布局,其中TextView内部(或使用Android布局,如android.R.layout.simple_list_item_1)用于您的适配器。

注:为了避免一些错误与ListView,你必须还设置高度match_parentfill_parent

+0

得到它通过使用此感谢工作 – daniel

2

尝试此适配器:

ArrayAdapter<String> adapter= 
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myItems); 

适配器有夸大一个TextView。你可以用XML创建自己的TextView(如果你想定制它)。

那么这将是:

ArrayAdapter<String> adapter= 
new ArrayAdapter<String>(this, R.layout.yourcustomtextview, myItems); 
0

在Android的默认阵列适配器需要布局该行作为第二个参数。

ArrayAdapter构造更改为这样的事情:

ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items)