无法在Fragment中的SimpleAdapter中获取getView

时间:2014-11-07 19:00:31

标签: java android android-fragments 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 个答案:

答案 0 :(得分: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;
    }
}