gpt4 book ai didi

java - Android - 从 fragment 调用函数

转载 作者:行者123 更新时间:2023-12-01 18:00:24 25 4
gpt4 key购买 nike

我正在尝试制作一个包含 3 个 fragment 的选项卡式 Activity 。我的一个 fragment 有一个按钮,正在调用 onClick 函数:

<Button
android:text="Start meeting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="58dp"
android:id="@+id/sp_live_meeting"
android:layout_below="@+id/live_cost"
android:layout_centerHorizontal="true"
android:onClick="sp_timer" />

fragment 在相应的类文件中创建:

public class LiveMeeting_meeting_fragment extends Fragment {

Button sp;
Button stop;
Chronometer chrono;
int cnt = 0;
long timeStop;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.livemeeting_meeting_fragment, container, false);
sp = (Button) rootView.findViewById(R.id.sp_live_meeting);
stop = (Button) rootView.findViewById(R.id.stop_live_meeting);
chrono = (Chronometer) rootView.findViewById(R.id.live_timer);
return rootView;
}

public void sp_timer(View view){
if(cnt == 0){
sp.setText("Pause meeting");
chrono.setBase(SystemClock.elapsedRealtime() + timeStop);
chrono.start();
cnt = 1;
} else if (cnt == 1){
sp.setText("Continue meeting");
chrono.stop();
timeStop = chrono.getBase() - SystemClock.elapsedRealtime();
cnt = 0;
}

}
}

我现在的问题是,我无法调用该函数,因为它告诉我它找不到该函数:

java.lang.IllegalStateException: Could not find method sp_timer(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'sp_live_meeting'

我该如何解决这个问题?

最佳答案

从 XML 中删除 onClick 属性,而使用 onClickListener

代码:

Button btn = (Button) findViewById(R.id.mybutton);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//write your sp_timer method here
}
});

Android 仅在当前 Activity 中查找 onClick 方法 sp_timer()。如果您使用 fragment ,记住这一点很重要,因为即使您使用 fragment 添加上面的 XML,Android 也不会在用于添加 fragment 的 .java 文件中查找 onClick 方法XML。

关于java - Android - 从 fragment 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41453577/

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