我有一个带有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
}
});
}