【发布时间】:2020-12-27 11:19:34
【问题描述】:
因为getAdapterPosition(),我现在很困惑。
我之所以问这个是因为getAdapterPosition()根据呼叫位置工作。
它适用于Anonymous Obect's OnClick()。但是如果它存在Anonymous Obect's Field,它就不起作用了。
此时的值为-1。
有什么问题?
这是代码
Adapter.java (RecyclerView Adpater)
part.setOnClickListener(new View.OnClickListener() {
int position = getAdapterPosition(); // didn't work
@Override
public void onClick(View v) {
int position = getAdapterPosition(); // work well
if(select == false) {
part.setBackgroundColor(context.getResources().getColor(R.color.teal_700));;
select = true;
}
else {
part.setBackgroundColor(context.getResources().getColor(R.color.white));;
select = false;
}
listener.OnItemClick(v, position); // or OnItemClick(v, getAdapterPosition()) works well, too
}
});
DialogFragment.java(错误位置)
dialogAdapter.setOnItemClickListener(new DialogItemAdapter.OnDialogItemClickListener() {
@Override
public void OnItemClick(View itemView, int pos) {
Log.d(TAG, "OnItemClick: ");
String data = dialogAdapter.getItem(pos).getPart(); // ERROR
}
});
这是Java的语法问题吗?
请帮帮我。
谢谢
【问题讨论】:
标签: android android-recyclerview android-adapter