首页 > 解决方案 > 从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

任何建议都会对我有很大帮助。谢谢

标签: androidinterface

解决方案


我假设您想从 recyclerview 适配器访问活动并在进度条上执行一些操作并在那里保存值。您想要这样做是访问上下文,强制转换和调用函数您可以在适配器的 onbindview 中执行以下操作:

((YouActivityClass)context).yourFunctionToUpdateProgress);

推荐阅读