[英]How can I perform onClickListener on two object using interface in Android Studio?
I have a Fragment class which extends View.onClickListener
and I have implement @overriden method ie onClick .我有一个 Fragment 类,它扩展View.onClickListener
并且我已经实现了 @overriden方法,即onClick 。
I have 2 imageView
which performs onClickListener
.我有 2 个执行imageView
的onClickListener
。
filterIcon.setOnClickListener(this)
fab.setOnClickListener(this)
And set both activities in @overriden method ie onClick()
.并在@overriden方法即onClick()
中设置这两个活动。
I want to know can this is possible that onClickListener
will call the related clickEvent
?我想知道onClickListener
是否有可能调用相关的clickEvent
? If yes, how?如果是,如何? If not, why?如果不是,为什么?
Here's my code:这是我的代码:
public class ExpenseFragment extends Fragment implements View.OnClickListener {
private TextView totalExpenseTV;
private FloatingActionButton fab;
private RecyclerView recyclerView;
private ImageView filterIcon;
private PieChart pieChart;
private Animation rotateForward, rotateBackward;
private FirebaseRecyclerOptions<ExpenseModel> options;
private MyAdapter adapter;
private int calendarImgClick = 0;
private int groceryClick = 0;
private int bikeClick = 0;
private int rentClick = 0;
private int foodsClick = 0;
private int beerClick = 0;
private int setCalClick = 0;
private String whichCategorySelected = "";
private String selectedDate;
public void onViewCreated(@NonNull View attachInParentView, Bundle savedInstanceState) {
super.onViewCreated(attachInParentView, savedInstanceState);
findViewByIDS(attachInParentView);
setupRecyclerView();
fabAnimation();
fab.setOnClickListener(this);
filterIcon.setOnClickListener(this);
databaseListener();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_expense, container, false);
}
@Override
public void onClick(View view) {
fab.startAnimation(rotateForward);
rotateForward.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
addNote();
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
filterIcon.setBackgroundResource(R.drawable.filter_off);
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.filterIcon) {
// codul care se executează când este apăsată imaginea filterIcon
} else if (view.getId() == R.id.fab) {
// codul care se executează când este apăsată imaginea fab
}
}
The best practice using this way使用这种方式的最佳实践
@Override
public void onClick(View view) {
when(view.getId){
R.id.filterIcon -> {
//do something
}
R.id.fab -> {
//do something
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.