使用ListView:如何添加标题视图?
我迷上了ListView API ,我看到了这个方法:
addHeaderView(View v)
我想要做的是在布局上面有一个布局,这可能吗?
我试着做一些事情:
EditText et=new EditText(this); et.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); et.setInputType(InputType.TYPE_CLASS_TEXT); addHeaderView(et); //makes app crash
我也试过了
setContentView(R.layout.tryview);
但它也使应用程序崩溃。
非常感谢帮助!
编辑 :这个类的代码是:
public class GroupsActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String your_array_contents[] = {"a","ab","c"}; setListAdapter(new ArrayAdapter<String>(this, R.layout.groups_layout, your_array_contents)); EditText et=new EditText(this); et.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); et.setInputType(InputType.TYPE_CLASS_TEXT); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); lv.setAdapter(new ArrayAdapter<String>(GroupsActivity.this, android.R.layout.simple_list_item_multiple_choice, your_array_contents)); lv.addHeaderView(et); //makes app crash lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // When clicked, show a toast with the TextView text // Toast.makeText(getApplicationContext(), ((TextView) view).getText(), //Toast.LENGTH_SHORT).show(); } }); } }
你根本不能使用View作为ListView的标题。
因为正在通过的观点必须夸大。
看看我的答案在Android ListView的addHeaderView()nullPointerException预定义的更多信息。
编辑:
看看这个教程Android ListView和ListActivity – 教程 。
编辑2 :这个链接是打破了Android的ListActivity页眉或页脚
您可以通过多次调用addHeaderView()来添加尽可能多的头文件。 您必须在将适配器设置为列表视图之前执行此操作。
是的,你可以添加标题像这样:
LayoutInflater inflater = getLayoutInflater(); ViewGroup header = (ViewGroup)inflater.inflate(R.layout.header, myListView, false); myListView.addHeaderView(header, null, false);