android - 从android中的另一个活动更新进度条
问题描述
我有一个进度条,我想从另一个活动中更新一个课程。我为此目的使用该界面,但它没有做任何事情或给出错误。这是实现
public static class MyViewHolder extends RecyclerView.ViewHolder implements MyCallBack{
ProgressBar progressBar;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
progressBar = itemView.findViewById(R.id.progress_bar);
}
@Override
public void updateMyText(int integer) {
progressBar.setProgress(integer);
}
}
}
interface MyCallBack {
public void updateMyText(int integer);
}
public class OtherActivity extends AppCompatActivity {
MyCallBack myCallBack;
@Override
public void onSavedState() {
myCallBack = new MyCallBack() {
@Override
public void updateMyText(int integer) {
progressBar.setProgress(90);
Toast.makeText(PlayerActivity.this, "call back", Toast.LENGTH_SHORT).show();
}
};
}
}
我试图将它保存在构造函数中OtherActivity
public OtherActivity(MyCallBack myCallBack) {
this.myCallBack = myCallBack;
}
myCallBack.updateMyText(90);
但它给出了一个错误说caused by: java.lang.instantiationexception: java.lang.class<com.example.myapp.otheractivity> has no zero argument constructor
任何建议都会对我有很大帮助。谢谢
解决方案
我假设您想从 recyclerview 适配器访问活动并在进度条上执行一些操作并在那里保存值。您想要这样做是访问上下文,强制转换和调用函数您可以在适配器的 onbindview 中执行以下操作:
((YouActivityClass)context).yourFunctionToUpdateProgress);
推荐阅读
- django - Django-过滤管理器
- azure-data-factory - 使用 ADF Pipeline RUN ID 作为表名
- node.js - 从终端查询 MongoDB 数据库:[MongoError]: failed to connect to server
- junit - 在 JUnit 测试中创建实例后,如何在 Camunda 中的实例中设置变量?
- java - 使用 Java 应用程序运行项目时未找到 Rest API 响应 404
- javascript - 在 FullCalendar 4 的 dateclick 上打开模式
- python - 如果被杀死,则重新启动 Python 脚本
- reactjs - 从 NPM 添加 bootrap-react 会在 Visual Studio 中创建另一个包锁定文件
- reactjs - 当我在渲染方法中调用异步函数时,错误对象在本机反应中作为反应子无效
- css - OpenCart 3上的巴塞尔主题轮播模块全屏宽度