【问题标题】:How to read a return from a class - android如何读取类的返回值 - android
【发布时间】:2019-10-03 00:44:31
【问题描述】:

我从服务器做一个文件, 我的想法是将下载的文件大小传递给一个类,并在我的进度条类上获取值以更新进度条; 我有一个将值传递给类的函数

这就是我尝试传递值的方式

新的 updateValue(fileSizeDownloaded);

值存储在这里 公共类更新值{ 私有长 v_value;

        public updateValue(long value) {
            v_value = value;
        }

        public long getV_value() { return v_value; };
    }

我试图从另一个类中获取 getV_value 的值,但我不断收到错误消息; update(long) in update 不能应用于 0

如何获取存储的值:/所有这些都在 mainactivity.java 上

updateValue value = new updateValue();
value.getV_value();

【问题讨论】:

    标签: android class methods return return-type


    【解决方案1】:

    你可以做的是创建一个新类并扩展应用程序

    public class yourcalss extends Application {
          public long getValue() {
                return value;
            }
    
            public void setValue(long value_e) {
                value = value_e;
            }
    }
    

    这就是你保存价值的方式

    final yourcalss value = (yourcalss ) getApplicationContext();
    value.setValue(fileSizeDownloaded);
    

    这就是您可以访问该值的方式

    final yourcalss val = (yourcalss ) getApplicationContext();
    final Long v = val.getValue(); 
    

    并体现

    <application android:name="yourcalss 
    

    【讨论】:

      【解决方案2】:

      您在创建updateValue 的实例时没有设置初始值。传递这样的值

      long val = 1000; //can be any long value
      updateValue value = new updateValue(val);
      value.getValue();
      

      【讨论】:

      • 谢谢兄弟,但值已经存在,使用 updateValue 值我只是试图访问存储在公共类 updateValue 中的值
      • 我已经更新了我的问题,提供了更多细节,抱歉
      • @CarlosCastro 我明白了,在这种情况下,我认为问题在于您正在创建类 updateValue 的新实例,而不是您最初创建的类。所以最好使用ViewModel 类。更多信息在这里:developer.android.com/topic/libraries/architecture/viewmodel
      猜你喜欢
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2011-04-27
      • 2020-11-01
      • 2021-08-11
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多