使用 ListView :如何添加标题视图? [英] Using ListView : How to add a header view?

查看:20
本文介绍了使用 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);//使应用程序崩溃

我也试过

setContentView(R.layout.tryview);

但它也会使应用程序崩溃.

非常感谢您的帮助!

编辑:这个类的代码是:

public class GroupsActivity extends ListActivity {@覆盖public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String your_array_contents[] = {"a","ab","c"};setListAdapter(new ArrayAdapter(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(GroupsActivity.this,android.R.layout.simple_list_item_multiple_choice, your_array_contents));lv.addHeaderView(et);//使应用程序崩溃lv.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View view,int 位置,长 id) {//单击时,显示带有 TextView 文本的 toast//Toast.makeText(getApplicationContext(), ((TextView) view).getText(),//Toast.LENGTH_SHORT).show();}});}}

解决方案

您根本无法将 View 用作 ListView 的 Header.

因为传入的视图必须被膨胀.

看看我的回答 Android ListView addHeaderView() nullPointerException对于预定义的视图了解更多信息.

看看这个教程Android ListView 和 ListActivity - 教程.>

编辑 2:此链接已损坏 带有页眉或页脚的Android ListActivity

I looke at the ListView API and I saw the method:

addHeaderView(View v)

What I want to do is to have a layout above the list, is this possible ?

I tried doing something like :

  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

I also tried

setContentView(R.layout.tryview);

but it also make the app crash.

Help is very much appreciated!

Edit : The code for this class is:

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();
    }
  });
}


}

解决方案

You simply can't use View as a Header of ListView.

Because the view which is being passed in has to be inflated.

Look at my answer at Android ListView addHeaderView() nullPointerException for predefined Views for more info.

EDIT:

Look at this tutorial Android ListView and ListActivity - Tutorial .

EDIT 2: This link is broken Android ListActivity with a header or footer

这篇关于使用 ListView :如何添加标题视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆