我正在stripe-terminal-android app
上工作,他们有内置的应用程序,但是我想根据用例对其进行自定义。
当我打开应用程序时,它首先给我片段Discover Readers
,link-of-code,
但是我希望它能够自动单击,并且无需任何单击就可以像单击时一样工作,这样就无需每次都手动搜索-阅读器。
@Override
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
view.findViewById(R.id.discover_button).setOnClickListener(v -> {
final FragmentActivity activity = getActivity();
if (activity instanceof NavigationListener) {
((NavigationListener) activity).onRequestDiscovery(viewModel.getSimulated());
}
});
但是,当前代码是调用onRequestDiscovery
,仅在单击按钮后才执行,我该怎么做,就像我们在javascript中一样?
document.getElementById("demo").click())
或类似的一个?因此无需手动单击即可进行进一步操作。
在塞巴斯坦回答后编辑。
添加了这一行,但我想单击并调用功能onRequestDiscovery()
,该功能不起作用。
view.findViewById(R.id.discover_button).performClick()
在Sebastein编辑回复后添加的屏幕截图
答案 0 :(得分:1)
使用方法 performClick():
@Override
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
Button button = view.findViewById(R.id.discover_button)
button.setOnClickListener(v -> {
final FragmentActivity activity = getActivity();
if (activity instanceof NavigationListener) {
((NavigationListener) activity).onRequestDiscovery(viewModel.getSimulated());
}
button.performClick();
});
但是对我而言,最好的方法不是在片段中开始活动,而是直接在实例化片段的活动中开始。