Android getter和setter在不同文件中的使用情况?

时间:2016-12-31 08:34:31

标签: java android

我在java中有一个getter和setter方法

public class TempInfo {

  private int user_ID;

  public int getID() {
    return user_ID;
  }

  public void setID(int id) {
    this.user_ID = id;
  }
}

我有2个不同的班级。在第一个我调用setter方法并设置参数,因为如果我从那里调用getter方法它显示“user_ID”的值,但如果我在第二个类中调用getter方法它显示0。

头等(我在这里使用setter)

String segment = response.substring(response.lastIndexOf(":") + 1);
TempInfo i = new TempInfo();
i.setID(Integer.parseInt(segment));

使用我的数据库ID成功返回“segment” 第二课(我想使用getter)

TempInfo i = new TempInfo();
Toast.makeText(MainActivity.this, "" +i.getID(), Toast.LENGTH_LONG).show();

总的来说,我想在类中设置“user_ID”,存储在那里并显示在另一个类中。我撕毁了数据库中的ID,但我还需要java中的ID。

1 个答案:

答案 0 :(得分:1)

你正在制作两个TempInfo对象。 让我们称它们为TempInfo1和TempInfo2。 在第一项活动中,你做了

TEmpInfo1.setID(Integer.parseInt(segment));

在下一个活动中,您正在呼叫

TEmpInfo2.getID();

一种可能的解决方案是你可以使用Singleton。

public class TempInfo {

private TempInfo() {
}

static TempInfo tempInfo;
private static int user_ID;

public static TempInfo getInstance() {
    if (tempInfo == null) {
        tempInfo = new TempInfo();
    }
    return tempInfo;
}

public int getID() {
    return user_ID;
}

public void setID(int id) {
    this.user_ID = id;
}

}

并使用

TempInfo.getInstance().setId(Integer.parseInt(segment));
TempInfo.getInstance().getId();

更改后,您的代码应该可以正常工作。