gpt4 book ai didi

java - 如何在 fragment 中使用 onClickListener 方法?

转载 作者:行者123 更新时间:2023-11-29 02:34:15 26 4
gpt4 key购买 nike

在我的项目中,我使用viewPager 来显示一些 fragment
在其中一个 fragment 中,我想要点击按钮。
我写了下面的代码,但是当 click button 不调用 onClickListener 并且不为我显示 Toast 时!

我的 fragment 代码:

@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);
}
}

我该如何解决这个问题?

最佳答案

为什么要覆盖 setUserVisibleHint 来设置点击监听器?


更新: setUserVisibleHint 与工具栏按钮无关...该方法供 调用以让系统知道 fragment 不可见。它通常不会被系统调用,这就是为什么您的 toast 永远不会显示的原因。

如果您要查找的按钮是工具栏项,您需要使用 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
}
}
}

然后,如果您只想在该 fragment 处于 Activity 状态时与该按钮进行交互,则可以分别在 onStart() 和 onStop 中显示和隐藏它。

@Override
public void onStart() {
super.onStart();
list_item.setVisibility(View.VISIBLE);
}

@Override
public void onStop() {
super.onStop();
list_item.setVisibility(View.GONE);
}

关于java - 如何在 fragment 中使用 onClickListener 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47959191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com