【问题标题】:Get ListView From Activity and Programmatically Populate With XML String Array从 Activity 获取 ListView 并以编程方式填充 XML 字符串数组
【发布时间】:2012-06-01 10:29:52
【问题描述】:

我在想出一些应该非常简单直接的事情时遇到了一些麻烦。我有一个包含几个视图的活动包括当前未填充的 ListView。

如何以编程方式获取对该 ListView 的引用,然后设置项目,每个项目都是 TextView,其内容然后是 XML 字符串数组项目?

我想获得参考是这样的:

ListView incomeList = (ListView) findViewById(R.id.incomeList);

我的 strings.xml 中也有这个代码(想用这个数组填充列表):

<string-array name="testArray">
   <item>Item1</item>
   <item>Item2</item>
   <item>Item3</item>
   <item>Item4</item>
   <item>Item5</item>
</string-array>

最后我有这个其他布局 xml 文件,根据那里的所有 tuts 我应该有。 list_item.xml

<?xml version="1.0" ebcoding="utf-8">
<TextView xmlns:android="blablabla..."
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:padding="10dp"
   android:textSize="16sp"
</TextView>

如果 ListView 是您活动中的唯一视图,我在网络上遵循的所有教程都会很有帮助。而在我的情况下,我有很多视图,包括按钮、文本视图等(如果这可能有助于了解)。我是否也可以使用 ListActivity 扩展我的课程,或者因为那里有其他视图,所以只需使用 Activity 正常扩展?

【问题讨论】:

    标签: android xml listview android-layout


    【解决方案1】:

    您不需要扩展 ListActivity。只需延长常规活动即可。

    步骤:

    A) 获取您的 ListView。你的问题做得对。

    B) 创建一个 ArrayAdapter。您必须传递一个上下文(如果您在 Activity 上执行此操作,则传递该 Activity)、一个表示仅包含 TextView 的布局的 int (就像您问题中的那个)和一个包含您需要的所有项目的 String[]。

    应该是这样的:

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, getResources().getStringArray(R.array.testArray);
    

    C) lv.setAdapter(适配器);

    非常简单。

    【讨论】:

    • 它正在工作!非常感谢你,你是 50rep 的骄傲拥有者.. :-)
    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多