如何让listview作为子view

TaiJi1985 2011-02-12 02:43:56
我想做的一个界面是

一个文本框,一个按钮 。下面是一个列表。

问题是,listview 好像只能做为主view 。不能做子view。
如果做子view就会报错。

各位老大,如何实现这个功能?



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

<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText android:id="@+id/EditText01" android:layout_height="wrap_content" android:layout_width="150px"></EditText>
<Button android:id="@+id/Button01" android:layout_height="wrap_content" android:text="@string/search_btext" android:layout_width="50px"></Button></LinearLayout>


<ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView>
</LinearLayout>


import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class SearchMain extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView lv = (ListView)findViewById(R.id.ListView01);
//ListView lv = new ListView(this);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getSearchResult()));

//setContentView(lv);
setContentView(R.layout.main);

}
private List<String> getSearchResult()
{
List<String> data = new ArrayList<String>();
data.add("text1");
data.add("test2");
return data;
}
}
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TaiJi1985 2011-02-12
  • 打赏
  • 举报
回复
感谢raindrophust 。还真是这个问题。 在setContentView之前,应该是没有实例化的, 那个时候就得不到指针了。

结贴,给分。
raindrophust 2011-02-12
  • 打赏
  • 举报
回复
调试通过了,记得给分哦。。。穷啊,我~~~~~~~~~~~~
raindrophust 2011-02-12
  • 打赏
  • 举报
回复
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView)findViewById(R.id.ListView01);
//ListView lv = new ListView(this);
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getSearchResult()));

//setContentView(lv);

你应该把setContentView放在findViewById之前,调试下吧,应该可以了~!~
raindrophust 2011-02-12
  • 打赏
  • 举报
回复
可以啊,你报的什么错咯。。不是listview的问题吧

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧