android - 从 fragment 中获取数据值到主要 Activity 中?

标签 android android-fragments server badge

我正在尝试创建一个通知徽章,如 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/

相关文章:

android - db.rawquery "order by"不工作

android - 我忘记了 SharedPreferences 文件的名称。

android - 列出 fragment 中的 Activity

java - 多个 fragment 需要位置更新

javascript - 不需要在后台验证密码确认和密码吗?

android - 如何在混合应用程序中安全地创建登录系统(phonegap/cordova)

android - Android.mk 中的每文件 CPPFLAGS

Android Studio 打开 fragment 但不更改底部导航菜单状态

http - 如何启动Web服务器以在golang的浏览器中打开页面?

android - 如何通过唯一分隔符分隔从服务器获取的数据?