我正在尝试创建一个通知徽章,如 Whatsapp(靠近选项卡),但无法获取存储在 fragment 中的数据值,但由于徽章将在主要 Activity 中,我无法获取(调用)来自 fragment 的动态值。
下面是代码:
LoadJSON Code
private void loadJSONClaim() {
sp = this.getActivity().getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
String usr = sp.getString(UserID, "");
Retrofit retrofitclaim = new Retrofit.Builder()
.baseUrl("http://ec2-54-191-118-200.us-west-2.compute.amazonaws.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterfaceClaim requestclaim = retrofitclaim.create(RequestInterfaceClaim.class);
Call<JSONResponseClaim> call = requestclaim.getJSONClaim(usr);
call.enqueue(new Callback<JSONResponseClaim>() {
@Override
public void onResponse(Call<JSONResponseClaim> call, Response<JSONResponseClaim> responseclaim) {
JSONResponseClaim jsonResponseClaim = responseclaim.body();
dataclaim = new ArrayList<>(Arrays.asList(jsonResponseClaim.getAndroidClaim()));
adapterclaim = new DataAdapterClaim(dataclaim);
mRecyclerViewClaim.setAdapter(adapterclaim);
eligitem.setText(" Eligible to earn " + dataclaim.size() + " items");
/* if(dataclaim.size()==0){
filldata.setVisibility(View.GONE);
emptyclaim.setVisibility(View.VISIBLE);
}
else{
emptyclaim.setVisibility(View.GONE);
filldata.setVisibility(View.VISIBLE);
}*/
}
所以我猜想,下面的代码在 Fragment 中工作或者在 Main Activity 中调用数据值应该可以解决这个问题。
MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CleverTapAPI ct;
BadgeView badgeView = new BadgeView(this,tabLayout);
badgeView.setText("2");
badgeView.show();
有人可以帮忙吗?
编辑:改进的问题
最佳答案
首先创建一个接口(interface),无论你想发送到哪里:
public Interface IEventListener{
public void somMethod(data_type_toSend data)
}
然后在 fragment 的类中定义并在构造函数中启动此接口(interface):
IEventListener myListener;
public YourFragment (IEventListener listener){
myListener=listener
}
最后让你的activity实现你的接口(interface)
public class myActivity extends ... implements **IEventListener**{
然后在您的 Activity 中覆盖事件回调:
@Override
public void somMethod(data_type_toSend data){
//what you want to do with sent data to activity
}
关于android - 从 fragment 中获取数据值到主要 Activity 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480678/