在我的项目中,我使用viewPager
来展示一些fragments
在其中一个fragments
我想要点击按钮
我写下面的代码,但是当button
上的点击时,请不要致电onClickListener
而不是Toast
给我!
我的代码片段:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser){
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
list_item = getActivity().findViewById(R.id.list_item);
list_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (clickFlag) {
AuctionTodayListAdapter adapter = new AuctionTodayListAdapter(getActivity(), R.layout.list_item_auction_large_new, Constants.auction.getToday());
list.setAdapter(adapter);
clickFlag = false;
list_item.setImageResource(R.drawable.list_icon);
Toast.makeText(context, ""+clickFlag, Toast.LENGTH_SHORT).show();
} else {
AuctionTodayListAdapter adapter = new AuctionTodayListAdapter(getActivity(), R.layout.list_item_auction_normal_soon, Constants.auction.getToday());
list.setAdapter(adapter);
clickFlag = true;
list_item.setImageResource(R.drawable.list);
Toast.makeText(context, ""+clickFlag, Toast.LENGTH_SHORT).show();
}
}
});
}
}, 50);
}
}
我该如何解决这个问题?
答案 0 :(得分:0)
为什么要覆盖setUserVisibleHint
来设置点击监听器?
<小时/> 更新:
setUserVisibleHint
与工具栏按钮无关......该方法适用于你调用,让系统知道片段不可见。它通常不会被系统调用,这就是为什么你的吐司永远不会出现的原因。
如果您尝试查找的按钮是工具栏项,则需要使用onCreateOptionsMenu和onOptionsItemSelected方法与其进行互动。
<小时/> 这是onCreateView中的一种做法:
@Override
View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = // inflate view from layout resource
list_item = getActivity().findViewById(R.id.list_item); // Get toolbar item
list_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Do you click stuff
}
}
}
然后,如果您只想在此片段处于活动状态时与此按钮进行交互,则可以分别在onStart()和onStop中显示和隐藏它。
@Override
public void onStart() {
super.onStart();
list_item.setVisibility(View.VISIBLE);
}
@Override
public void onStop() {
super.onStop();
list_item.setVisibility(View.GONE);
}