使用ListView控件:如何添加一个头的看法?控件、个头、看法、ListView

2023-09-12 07:49:17 作者:成就儿时的梦想

我looke在 ListView的API 我看到的方式:

  

addHeaderView(视图v)

我想要做的是有上面的列表中的布局,这可能吗?

我试图做这样的事情:

 的EditText等=新的EditText(本);
  et.setLayoutParams(新Gallery.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
  et.setInputType(InputType.TYPE_CLASS_TEXT);
  addHeaderView(等); //使应用程序崩溃
 

我也试过

 的setContentView(R.layout.tryview);
 

但它也使应用程序崩溃。

帮助是非常AP preciated!

修改:在code这个类是:

 公共类GroupsActivity扩展ListActivity {
@覆盖
公共无效的onCreate(包savedInstanceState){
  super.onCreate(savedInstanceState);
  串your_array_contents [] = {一个,AB,C};
  setListAdapter(新ArrayAdapter<字符串>(这一点,R.layout.groups_layout,your_array_contents));
  等的EditText =新的EditText(本);
  et.setLayoutParams(新Gallery.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
  et.setInputType(InputType.TYPE_CLASS_TEXT);

  ListView的LV = getListView();
  lv.setTextFilterEnabled(真正的);
  lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

  lv.setAdapter(新ArrayAdapter<字符串>(GroupsActivity.this,
    android.R.layout.simple_list_item_multiple_choice,your_array_contents));
    lv.addHeaderView(等); //使应用程序崩溃
  lv.setOnItemClickListener(新OnItemClickListener(){
    公共无效onItemClick(适配器视图<>母公司视图中查看,
        INT位置,长的id){
      //单击时,显示出与TextView的文字敬酒
     // Toast.makeText(getApplicationContext(),((TextView的)视图).getText()
          //Toast.LENGTH_SHORT).show();
    }
  });
}


}
 
android 在listview中添加了一个Chronometer 为何不能用

解决方案

您不能简单地使用查看的ListView的头。

由于正被传递的视图已被夸大了。

看我的答案在Android ListView的addHeaderView()NullPointerException异常为predefined景观获取更多信息。

编辑:

阅读本教程 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