我怎样才能获得以前的java值?

时间:2016-09-10 15:04:51

标签: java android string stringbuilder

当用户选择每个微调器时,我已经Spinner dropDown拖了layout我会从spinner获取一个ID,我有一个我发送这些ID的课程它上课。

getID.class

public class getID {
private String tagID = "105358";

    public getID tagID(String tagID) {

        this.tagID += "," + tagID;

        return this;
    }
public URL build() throws MalformedURLException {
    return new URL(
            String.format("%s",
                          tagID));
     }
}

问题:

但是当我在第二个微调器上选择一个项目时,我丢失了第一个微调器的第一个值。

我使用以下代码将我的价值发送给班级:

URL url = new getID(Const.URLMedia)
                                .tagID("10")
                                .build(); 

例如,当我在第一个微调器上选择一个项目(对于考试我发送10个值)时,我会看到:

105358,10

当我在其他课程中选择第二个微调器上的项目(对于考试我发送85值)时,我看到:

105358,85

但我需要:

105358,10,85

2 个答案:

答案 0 :(得分:2)

好像你每次都在创建getID的新实例:

URL url = new getID(Const.URLMedia)
                                .tagID("10")
                                .build(); 

因此,当您选择第一个微调器时,您将获得105358,10,当您选择第二个微调器时,您的代码将再次创建getID的新实例并获得105358,5,因此只需创建一个{ {1}}实例,而不是每次都创建一个新实例。

getID

现在简单地附加值

class Activity ..{
getID  url;

         @Override
          oncreate (Bundle saveinstance){
          url=new getID();
        }
  }

加上我无法看到URL url = obj.tagID(StringValue).build(); 的任何constructor,似乎错过了。

  

一些意外情况的最佳做法,以避免网址损坏(如果   序列问题):

如果用户选择第二个微调器而不是第一个微调器:您可以在第一个微调器的getID(Const.URLMedia)内创建新的getID对象,并设置第二个微调器的默认值。

答案 1 :(得分:0)

一种方法是跟踪两个滑块(我添加了一个构造函数):

public class getID {
private String tagID;
private String init;
private String firstSlider;
private String secondSlider;

public getID setFirstSlider(String value) {
    firstSlider = value;
    return this;
}
public getID setSecondSlider(String value) {
    secondSlider = value;
    return this;
}

public getID(String init) {
    this.init = init;
    tagID = "" ;
    firstSlider = "";
    secondSlider = "";      
}

    public getID tagID() {

        this.tagID = init + "," + firstSlider + "," + secondSlider;

        return this;
    }
public URL build() throws MalformedURLException {
    return new URL(
            String.format("%s",
                          tagID));
     }
}

然后你可以使用这样的类:

        try {
        getID myID = new getID("105358") ;
        URL url = myID.setFirstSlider("10").setSecondSlider("20").tagID().build();
        System.out.println("url: " + url);
    } catch (Exception e) {
        System.out.println("Exception: " + e);
    }

还有其他方法可以做到这一点,例如删除tagID()函数和tagID String并直接调用build(),因为所有信息都可用:

public URL build() throws MalformedURLException {
    return new URL(
            String.format("%s,%s,%s",
                          init, firstSlider, secondSlider));
     }
}