【问题标题】:set progress bar value from other class android从其他类android设置进度条值
【发布时间】:2021-09-13 05:05:00
【问题描述】:

我在适配器类中的 viewHolder 类中有一个进度条。当实现该活动的 onPause 方法时,我需要从另一个活动 UpdateActivity 更新该栏。我尝试过使用该界面,但它没有更新进度条,进度条保持不变,也没有错误。有什么办法可以从给定的活动中更新栏吗?任何帮助将不胜感激。

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

  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  UpdateActivity extends AppCompatActivity {

MyCallBack myCallBack;
int final_value;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        
        //

    @Override
    protected void onPause() {
        super.onPause();

  
      /*  myCallBack = new MyCallBack() {
            @Override
            public void updateMyText(int integer) {
                progressBar.setProgress(100);
                
            }
        }; */

        final_value = position.getValue();  // final_value != null 
        progressBar.setProgress(final_value);

    }

}

【问题讨论】:

    标签: java android progress-bar


    【解决方案1】:

    您为其实施适配器的回收站视图在哪里?

    对task没有清楚的了解,你想在activity这里做什么,貌似是加载闪屏之类的进度条,那你为什么需要recycler呢?这个?

    如果逻辑是recyclerview(或另一个视图)中的每个项目都包含一个进度条,那么为了管理您需要的每个特定进度条:

    1. 在 MyViewHolder 中设置进度值的公共方法。
    2. 对包含进度条的具体视图的引用(例如,您可以在适配器构造函数中为此使用一些侦听器)。

    对于活动之间的交互,您可以使用方法 startActivityForResult。

    【讨论】:

    • 我尝试在带有接口的 MyViewHolder 类中使用公共方法设置进度值,但无法这样做。我已经在上面添加了,你能看看它是如何解决的吗?
    • 不能从Activity或者Fragment调用ViewHolder的方法,但是可以从适配器调用方法。
    • 另外,您可以将 ViewHolder 类标记为“内部”,如果有帮助,您将可以访问适配器类的字段。您可以指定适配器的位置,然后适配器将使用哪个项目。
    • 但是如果你能用一些真正有用的代码解释一下,如何从适配器调用或访问将解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多