有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法在片段中的SimpleAdapter中创建getView

我有一个带有AsyncTask的片段,我在其中解析Json。要将每个元素放入列表中,我使用SimpleAdapter。在我的项目列表中,我有一个按钮。当然,如果我想点击按钮,我需要创建一个getView。嗯,这不管用。这是AsyncTask中的SimpleAdapter部分

ListAdapter adapter = new SimpleAdapter(getActivity(), list, R.layout.list_rom_item, 
                  new String[] { TAG_NAME, TAG_SURNAME }, new int[] { R.id.name, R.id.surname}); 

在那之后,我试着说:

                 @Override
                 public View getView (int position, View convertView, ViewGroup parent)
                 {
                     View v = super.getView(position, convertView, parent);

                      Button b=(Button)v.findViewById(R.id.mytask);
                      b.setOnClickListener(new OnClickListener() {

                         @Override
                         public void onClick(View arg0) {
                             // TODO Auto-generated method stub
                             Toast.makeText(MainActivity.this,"save",Toast.LENGTH_SHORT).show();
                         }
                     });
                     return v;
                 }

我在@Override中得到一个错误,比如:The annotation @Override is disallowed for this location,当然还有getView()语法。。我不知道为什么。我也试图清理项目,但什么也没有。也许还有别的解决办法吗?谢谢


共 (1) 个答案

  1. # 1 楼答案

    在实例化适配器时,应该重写getView()方法。 在那之后,你将无法做到这一点

    试着这样做:

    ListAdapter adapter = new SimpleAdapter(getActivity(), list, R.layout.list_rom_item, 
                      new String[] { TAG_NAME, TAG_SURNAME }, new int[] { R.id.name, R.id.surname}) {
        @Override
        public View getView (int position, View convertView, ViewGroup parent) {
            ...
            return v;
        }
    }