-1

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

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()语法。我不知道为什么。我也尝试清理项目但没有。也许还有其他解决方案?谢谢。

4

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;
    }
}
于 2014-11-07T19:23:40.087 回答