如何在fragment otCreateview()中的ListView中单击“侦听器”按钮



我有一个带有listView的片段。我正在填充带有文本视图和imagebutton的列表项目的lisview。使用cursoradapter和list_item.xml.xml.ut列表,但我无法在oncreateview()中获取对此按钮的引用,因为按钮不是膨胀布局的一部分,而是list_item.xml的一部分。帮助您表示赞赏。这是我的片段:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
       rootView = inflater.inflate(R.layout.activity_account, container, false);
 accountListView = (ListView)rootView. findViewById(R.id.list);
    mCursorAdapter = new accountCursorAdapter(getActivity(), null);
        accountListView.setAdapter(mCursorAdapter);
// I want to set click listener on button here.Button is in list_item.xml

//使我的cursoradapter充气。

   return rootView;
    }

我的适配器类:公共类AccountCursorAdapter扩展了CursorAdapter {

@SuppressWarnings("deprecation")

public accountCursorAdapter(上下文上下文,光标C){ 超级(上下文,c);

}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    // Inflate a list item view using the layout specified in list_item.xml
    return LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
}
@Override
public void bindView(View view, final Context context, Cursor cursor) {
    // Find individual views that we want to modify in the list item layout
    TextView nameTextView = (TextView) view.findViewById(R.id.name);
    ImageButton image = (ImageButton) view.findViewById(R.id.account_menu);
    int nameColumnIndex =  cursor.getColumnIndex(accountContract.accountEntry.COLUMN_NAME);
    String name = cursor.getString(nameColumnIndex);
    nameTextView.setText(name);
    int position;
    position=cursor.getPosition();
    image.setTag(position);
}

}

您可以在适配器内注册您的onclicklistener:

  @Override
    public void bindView(View view, final Context context, Cursor cursor) {
        // Find individual views that we want to modify in the list item layout
        TextView nameTextView = (TextView) view.findViewById(R.id.name);
    ImageButton image = (ImageButton) view.findViewById(R.id.account_menu);
    int nameColumnIndex =  
    cursor.getColumnIndex(accountContract.accountEntry.COLUMN_NAME);
    String name = cursor.getString(nameColumnIndex);
    nameTextView.setText(name);
    int position;
    position=cursor.getPosition();
    image.setTag(position);
    image.setOnClickListener(new OnClickListener() {
    public void onClick(View v)
      {
        //do something
      } 
    });
}

最新更新