如何在回收视图活动之外实施进度条? [英] how do I implement progress bar outside of the recycle view activity?

查看:60
本文介绍了如何在回收视图活动之外实施进度条?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想显示类似的内容-> 我的家庭活动.在Android里面的Whats中,开始学习,继续前进,有这样的循环视图-> 在此处输入图像说明

I want to display something like this-->My Home activity..inside Whats Android,Start learning ,Get ahead there are recycleviews like this-->enter image description here

如何根据用户阅读情况实现这种进度条?

我的家庭活动:

public class MainActivity extends AppCompatActivity {

private RecyclerView recyclerview ;
private String[] names ;
private TypedArray profile_pics ;
private TypedArray card_images;
 ImageView imageView;

private List<Member> memberList ;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super .onCreate(savedInstanceState);
    setContentView(R.layout. activity_main );
    imageView=findViewById(R.id.search);

   Toolbar toolbar = (Toolbar) findViewById(R.id. toolbar );
   setSupportActionBar( toolbar );
    names = getResources().getStringArray(R.array. names );
    profile_pics = getResources().obtainTypedArray(R.array. profile_pics );
    card_images=getResources().obtainTypedArray(R.array.card_images);
    memberList = new ArrayList<>();
    for (int i = 0; i < names.length; i++) {
        Member member = new Member( names [i], profile_pics .getResourceId(i, -1),card_images.getResourceId(i,-1));
        memberList .add( member );
    }
    recyclerview = (RecyclerView) findViewById(R.id. recyclerview );
    LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
    recyclerview.setLayoutManager( layoutManager );
    MainAdapter adapter = new MainAdapter(memberList, MainActivity.this);
    recyclerview .setAdapter( adapter );
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent(getApplicationContext(),Search.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

            getApplicationContext().startActivity(intent);
        }
    });}}

家庭活动适配器:

public class MainAdapter extends RecyclerView.Adapter<MainAdapter.MemberViewHolder> {
private List<Member> members ;
private Context context ;
public MainAdapter(List<Member> members , Context context ) {
    this. members = members;
    this. context = context;
}
public class MemberViewHolder extends RecyclerView.ViewHolder {
    private CardView cardView ;
    private TextView name_tv ;
    private ImageView email_tv ;
    private ImageView pic_iv ;
    public MemberViewHolder(View itemView) {
        super (itemView);
        cardView = (CardView) itemView.findViewById(R.id. cv );
        name_tv = (TextView) itemView.findViewById(R.id. member_name );
        email_tv=(ImageView) itemView.findViewById(R.id.thumbnail);
        pic_iv = (ImageView) itemView.findViewById(R.id. profile_pic );
    }
  }

@Override
public void onBindViewHolder(MemberViewHolder memberViewHolder, int i) {
    final int pos = i;
    memberViewHolder. name_tv .setText(members.get(i).getName());
    memberViewHolder.email_tv.setImageResource(members.get(i).getCards());
    memberViewHolder. pic_iv .setImageResource(members.get(i).getPhotoID());
    memberViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(pos == 0){
                view.getContext().startActivity(new Intent(view.getContext(), Introduction.class));
            }

            else if(pos == 1){
                view.getContext().startActivity(new Intent(view.getContext(), WhatsAndroid.class));
            }

            else if(pos == 2){
                view.getContext().startActivity(new Intent(view.getContext(), StartLearning.class));
            }
            else if(pos == 3){
                view.getContext().startActivity(new Intent(view.getContext(), GetAhead.class));
            }

            else if(pos == 4){
                view.getContext().startActivity(new Intent(view.getContext(), TipsandTricks.class));
            }
            else if (pos==5)
            {
                view.getContext().startActivity(new Intent(view.getContext(), Interview.class));

            }
        }
    });
}
@Override
public MemberViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout. cardview_row_item , viewGroup, false);
    MemberViewHolder memberViewHolder = new MemberViewHolder(view);
    return memberViewHolder;
}
@Override
public int getItemCount() {
    return members.size();
 }
}

查看正在加载改造数据的房屋视图(开始学习活动):

taking one of view of home (Start learning activity) which is loading a retrofit data:

public class StartLearning extends AppCompatActivity {
private RecyclerView recyclerView;
private SLAdapter slAdapter;
ProgressDialog progressDialog;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.startlearning_layout);
    progressDialog = new ProgressDialog(StartLearning.this);
    progressDialog.setMessage("Loading....");
    progressDialog.show();
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        /*Create handle for the RetrofitInstance interface*/
        SLApiSevice service = SLApiClient.getRetrofitInstance().create(SLApiSevice.class);
        Call<List<SlModel>> call = service.getMySlmodel();

        call.enqueue(new Callback<List<SlModel>>() {
            @Override
            public void onResponse(Call<List<SlModel>> call, Response<List<SlModel>> response) {
                progressDialog.dismiss();
                generateDataList(response.body());

            }

            @Override
            public void onFailure(Call<List<SlModel>> call, Throwable t) {
                progressDialog.dismiss();
                Toast.makeText(getApplicationContext(), "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();


            }
        });
    }
}
private void generateDataList(List<SlModel> employeeList) {
    recyclerView = findViewById(R.id.SLrecycle);
    LinearLayoutManager manager = new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(manager);
    recyclerView.setHasFixedSize(true);
    slAdapter = new SLAdapter(getApplicationContext(),employeeList);
    recyclerView.setAdapter(slAdapter);
}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        finish();
    }
    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    super.onBackPressed();
}

开始学习适配器:

public class SLAdapter extends RecyclerView.Adapter<SLAdapter.CustomViewHolder> {

List<StartLearning.SlModel> Slmdel;
Context context;

public SLAdapter(Context context,List<StartLearning.SlModel> employees) {
    this.Slmdel = employees;
    this.context=context;
}

@Override
public CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.startlearning_item, parent, false);

    return new CustomViewHolder(itemView);
}

@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
    // TipsModel employee = employees.get(position);
    //// holder.employeeName.setText(employees.get(position).getTips());
    holder.textView.setText(String.valueOf(position+1)+". ");
    holder.employeeName.setText(Slmdel.get(position).getTitle());


}

@Override
public int getItemCount() {
    return Slmdel.size();
    //return (employees == null) ? 0 : employees.size();

}

public class CustomViewHolder extends RecyclerView.ViewHolder {
    public TextView employeeName;
    TextView textView;

    public CustomViewHolder(View view) {
        super(view);
        employeeName = (TextView) view.findViewById(R.id.Sl2);
        textView=view.findViewById(R.id.Sl1);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent =  new Intent(context, NextSLactivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.putExtra("title", Slmdel.get(getAdapterPosition()).getTitle());
               intent.putExtra("idSLnext", Slmdel.get(getAdapterPosition()).getId());
                //Log.e("ashwini",WAmdel.get(getAdapterPosition()).getId());
                context.startActivity(intent);

            }
        });


    }
  }
}

推荐答案

首先,您需要获取数据,但是由于此问题是关于显示具有进度条的圆形进度条,因此您可以这样做

First you need to get Data but as this question is regarding showing circular progressbar with perentage here is how you can do it

1.创建可绘制资源文件 创建一个名为drawing.xml的可绘制资源文件(可绘制资源文件意味着在android studio项目的文件结构中,您会在res文件夹中找到一个名为drawable的文件夹,如下图所示).

1.Creating drawable resource file Create one drawable resource file named circular.xml (drawable resource file means in android studio project’s file structure, you will find a folder named drawable inside a res folder as shown in the below image.)

2.编码circular.xml 将以下代码复制并粘贴到circle.xml

2.Coding circular.xml Copy and paste following code into circular.xml

代码

....

宁愿写同样的文字,我也建议您检查一下 https://demonuts.com/circular-progress-酒吧/

rather writing same i recommend check this out https://demonuts.com/circular-progress-bar/

这篇关于如何在回收视图活动之外实施进度条?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆