【发布时间】:2018-05-08 13:27:36
【问题描述】:
我有一个带有 listview 的片段。我正在使用包含 textview 和 imagebutton 的列表项填充 lisview。我想在片段的 onCreateView() 中的 listitem 按钮上设置 onClickListener。我正在使用 Cursoradapter 和 list_item.xml 填充列表。但我无法在 onCreateView() 中获得对这个按钮的引用,因为按钮不是膨胀布局的一部分,而是 list_item.xml 的一部分。如何在 listitem 按钮上设置点击侦听器。感谢任何帮助。 这是我的片段:
@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
// 使我的光标适配器膨胀。
return rootView;
}
我的适配器类: 公共类 accountCursorAdapter 扩展 CursorAdapter {
@SuppressWarnings("deprecation")
public accountCursorAdapter(Context context, Cursor 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);
}
}
【问题讨论】:
-
你必须在你的 accountCursorAdapter 类中注册 clicklistener,把你的类放在问题中
-
另外,我建议你给 RecyclerView 一个机会 :)
标签: android