是想要这样
但是 MainActivity 已经extends ....
java不能多重继承
....
想说用interface
在adapter.java 加上
public interface DataChange
{
public void callFunction();
}
并在Activity实做
@Override
public void callFunction() {
}
那在adapter.java
@Override
public void onBindViewHolder(@NonNull MyCartAdapter.ViewHolder holder,
int position) {
holder.xxx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
这里要如何呼叫interface中的callFunction???
}
});
}
});
}
※ 引述《lazior (懒人)》之铭言:
: 你的意思应该是recyclerView里面的item做了某事后,会改变Activity里的某元件吧?
: 一开始还以为你是要去侦测recyclerView的状态侦测(滚动中、闲置...)
: 我不知道这样的写法好不好,但你参考看看
: 作法是在Adapter定义一个function,并在onBindViewHolder的地方呼叫这个functoin
: 之后在Activity new这个Adapter时,复写这个function
: SomeAdapter:
: @Override
: public void onBindViewHolder(@NonNull MyCartAdapter.ViewHolder holder,
: int position) {
: holder.xxx.setOnClickListener(new View.OnClickListener() {
: @Override
: public void onClick(View v) {
: clickFunction();
: }
: });
: }
: public void clickFunction() {}
: MainActivity:
: public class MainActivity extends ... {
: private TextView textView;
: @Override
: protected void onCreate(Bundle savedInstanceState) {
: ...
: SomeAdapter adapter = new Adapter(...) {
: // 复写SomeAdapter里的clickFunction
: @Override
: public void clickFunction() {
: // do something you want here
: // 清空textView
: textView.setText("");
: }
: };
: }
: }