我正在编写一个包含一些简单视图的应用程序;首先是两个按钮。每个按钮都指向一张地图,从这张地图中,有一个按钮可以打开网站上的建筑物列表。从这里,用户将能够选择建筑物并查看其详细信息(实际上很像联系人列表)。到目前为止,我可以通过创建字符串数组来填充列表视图以直接在活动中填充它,如下所示:
public class BuildingsActivity extends ListActivity {
static final String[] buildings=new String[]{
"Building 1",
"Building 2",
"Building 3",
"Building 4",
"Building 5"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_buildings);
// Show the Up button in the action bar.
getActionBar().setDisplayHomeAsUpEnabled(true);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,buildings));
}
这对于一个 5 项的列表非常有效,但在它的最终形式中,列表可能包含多达一百个建筑物,我有两个问题:1) 一个包含 100 项的长字符串数组看起来真的很恶心在这样的代码中定义 2)如果必须事先生成如此大的字符串值列表,我担心应用程序打开活动需要多长时间
为了避免这种情况,我想在 strings.xml 文件中定义这个字符串数组,并将字符串分配给列表活动的相应布局 XML 中的列表布局。但是,到目前为止,这似乎不起作用。没有错误,但 android:entries 命令根本看不到影响布局。这是 XML。如果有人知道以这种方式填充列表,我将不胜感激。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".BuildingsActivity" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/buildings">
</ListView>
</RelativeLayout>
我的另一种选择是从文本文件中检索它,我将不得不这样做来构建细节(因为文本量太大而无法保存为字符串)但想要避免列表。诚然,我还没有深入研究过这条路线(因为我还没有真正想使用它,而且根据我在其他论坛上看到的内容,这看起来很困难,但如果有很多人支持这种方法,那么我肯定会感谢使用它的任何建议。
如果其他线程中已经涵盖了这些内容,请原谅我。我确实搜索过类似的主题,但似乎没有人想以这种方式填充列表,而且他们的问题中的很多语言都让我头疼(我很新……这是我的第一个真正的应用程序,除了已经完成开发者网站上的一些教程。