【问题标题】:update a progress bar from another activity in android从android中的另一个活动更新进度条
【发布时间】:2021-10-06 13:16:02
【问题描述】:

我有一个进度条,我想从另一个活动中更新一个课程。我为此目的使用该界面,但它没有做任何事情或给出错误。这是实现

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

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

【问题讨论】:

    标签: android interface


    【解决方案1】:

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

    ((YouActivityClass)context).yourFunctionToUpdateProgress);
    

    【讨论】:

    • 是的,我正在onBindViewHolder 中尝试这个((OtherActivity)activity).updateMy.....,但它没有显示updateMyText 方法。
    • @user16566034 使 updateMyText 像普通函数一样,没有界面。这种方法确实没有接口。
    【解决方案2】:

    使用共享 ViewModel + livedata 并观察 viewmodel 中的 livedata 属性。这样,所有活动都将能够相互跟踪

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多