从服务访问值到适配器
Accessing a value from a service to an adapter
服役中class:
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
updateprocess(percentage);
}
在适配器中
onBindViewHolder
progressBar = new ProgressBar(getContext());
progressBar = parentView.findViewById(R.id.progressbar_process);
现在我想从服务 class 方法访问此适配器进度的百分比
在服务中class我写了这个
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
Intent intent = new Intent("PercentageUpdates");
intent.putExtra("percentage", percentage);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
并且在 Activity 端你必须收到这个广播消息
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
mMessageReceiver, new IntentFilter("PercentageUpdates"));
通过这种方式,您可以将百分比发送到 Activity。这里的 mPercentageReceiver 是 class,因为 class 你会执行任何你想要的....
private BroadcastReceiver mPercentageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String percentage = intent.getStringExtra("percentage");
if (percentage != null) {
// You can set the percentage here
}
}
};
使用EventBus库
按照此步骤配置后
1 : 创建 servieClass.java
public class serviceClass {
private int percentage;
public serviceClass(int percentage) {
this.percentage = percentage;
}
public int getPercentage() {
return percentage;
}
}
2 : 更改服务
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
updateprocess(percentage);
EventBus.getDefault().post(new servieClass(percentage));
}
3 : 添加 setPercentage
功能到您的适配器
public void setPercentage(int percentage){
this.percentage = percentage;
notifyDataSetChanged();
}
4 : 最后在你配置 EventBus 的片段中添加这个
@Subscribe
public void onEvent(BlockedEvent event) {
adapter.setPercentage(percentage);
}
祝你好运
服役中class:
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
updateprocess(percentage);
}
在适配器中
onBindViewHolder
progressBar = new ProgressBar(getContext());
progressBar = parentView.findViewById(R.id.progressbar_process);
现在我想从服务 class 方法访问此适配器进度的百分比
在服务中class我写了这个
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
Intent intent = new Intent("PercentageUpdates");
intent.putExtra("percentage", percentage);
LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
}
并且在 Activity 端你必须收到这个广播消息
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
mMessageReceiver, new IntentFilter("PercentageUpdates"));
通过这种方式,您可以将百分比发送到 Activity。这里的 mPercentageReceiver 是 class,因为 class 你会执行任何你想要的....
private BroadcastReceiver mPercentageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String percentage = intent.getStringExtra("percentage");
if (percentage != null) {
// You can set the percentage here
}
}
};
使用EventBus库
按照此步骤配置后
1 : 创建 servieClass.java
public class serviceClass {
private int percentage;
public serviceClass(int percentage) {
this.percentage = percentage;
}
public int getPercentage() {
return percentage;
}
}
2 : 更改服务
public void onNotify(TransferHandler<ProcessHolder> handler, int percentage) {
updateprocess(percentage);
EventBus.getDefault().post(new servieClass(percentage));
}
3 : 添加 setPercentage
功能到您的适配器
public void setPercentage(int percentage){
this.percentage = percentage;
notifyDataSetChanged();
}
4 : 最后在你配置 EventBus 的片段中添加这个
@Subscribe
public void onEvent(BlockedEvent event) {
adapter.setPercentage(percentage);
}
祝你好运