当用户选择每个微调器时,我已经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
答案 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));
}
}