[英]OnClickListener not triggered as parameter
我正在嘗試將OnClickListener設置為setOnBackButtonClickListener方法中的參數。已經創建了偵聽器的對象並將其設置為我方法中的參數,但是OnClickListener未觸發。
當我執行Log時,方法被調用,但它不會觸發偵聽器。
我想這是因為片段生命周期。
這是我的OnClickListener:
@Bind(R.id.action_bar) ActionBar actionBar;
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
View.OnClickListener clickL = new View.OnClickListener() {
@Override
public void onClick(View v) {
navigateTo(LoginActivity.class);
}
};
這是onViewCreated內部的方法調用:
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
actionBar.setOnBackButtonClickListener(clickL);
}
您可以將OnClickListener綁定為布局中的變量,並將其分配給視圖。
我通常對片段執行的View.OnClickListener
是使其實現View.OnClickListener
,然后將片段綁定到布局。
布局:frag_test.xml
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="fragment"
type="au.com.myapp.fragments.BaseFragment"/>
</data>
<TextView
android:id="@+id/tv_undo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/AppTheme.TextView"
android:text="UNDO"
android:onClickListener="@{fragment}"/>
</layout>
分段:
public class BaseFragment extends Fragment implements View.OnClickListener {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragTestBinding binding = FragTestBinding.inflate(inflater);
// Set the layout's "fragment" variable so that this fragment handles the onClick.
binding.setFragment(this);
return binding.getRoot();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_undo:
// Your code in response to the click.
break;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.