首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在没有ListView布局的情况下以编程方式显示XML?

是否可以在没有ListView布局的情况下以编程方式显示XML?
EN

Stack Overflow用户
提问于 2011-03-27 17:23:08
回答 1查看 1.9K关注 0票数 0

我有一个活动,在其中我想要显示一个包含2个简单字符串项的ListView。我尝试了两种不同的方式(w/xml布局和w/o xml布局)--这两种方式我都添加了这两个项,但最终这些项只在创建具有xml布局的列表的版本中可见。为什么会这样呢?

xml布局list_view_custom_layout.xml包含:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
   <ListView android:id="@+id/ListView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

使用XML (并且运行良好)的代码可以做到这一点:

代码语言:javascript
运行
复制
activity.setContentView(R.layout.list_view_custom_layout); //this must be done here
listView=(ListView)activity.findViewById(R.id.ListView);

不使用XML的代码是相同的,除了上面的两行代码是这样做的(看起来应该是等价的):

代码语言:javascript
运行
复制
LinearLayout customLayout=new LinearLayout(activity);
//customLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layout = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.FILL_PARENT,
    ViewGroup.LayoutParams.FILL_PARENT);
customLayout.setLayoutParams(layout);


ListView listView=new ListView(activity);
customLayout.addView(listView,new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.FILL_PARENT,
    LinearLayout.LayoutParams.WRAP_CONTENT));

这两种方法不是等价的吗?如果是这样,为什么添加的项(通过适配器)只为第一种方法(使用xml布局)显示?谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-08-25 13:48:05

试试这个..。

代码语言:javascript
运行
复制
public class VersionActivity extends Activity {

    LinearLayout linearLayout;
    ListView listView;
    ArrayAdapter<String> aR;
    String[] str = new String[] { "item1", "item2", "item3", "item4", "item5",
            "item6" };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        linearLayout = new LinearLayout(this);
        listView = new ListView(this);
        aR = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, str);
        listView.setAdapter(aR);
        linearLayout.addView(listView);
        setContentView(linearLayout);
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5448308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档