0

我有一个包含editText(年份)的活动,所以我想在JAVA CLASS中获取这个editText的值,因为在这个java类中我有一个使用rawQuery的方法,在这个查询中我想使用的值子句 WHERE 中的变量(来自活动的年份),进行过滤,因此应用程序将只搜索在 editText 中插入年份的数据...

我试过这样:

在 JAVA 类中,我创建了一个变量及其 gettes 和 setter... private int year;

public NovoNivelGlicemicoDAO() {

}

public NovoNivelGlicemicoDAO(int ano) {
    super();
    this.ano = ano;
}

public int getYear() {
    return year;
}

public void setYear(int year) {
    this.year = year;
}

   // Method with query is here (obs: the method works fine, because if I use in the clause where, for example, 2013, it works, but when I try to get the year like this getYear() it does not bring any result.

我的活动很简单,我只是调用一个构造函数并使用集合:

JavaClass year= new JavaClass();

int year= (Integer.parseInt(ed_year.getText().toString()));

year.setYear(year);

请,如果有人知道为什么我不能从活动中得到年份,请告诉我;)

谢谢你。

4

1 回答 1

0

year在这里重新初始化

int year= (Integer.parseInt(ed_year.getText().toString()));

你需要一个新变量

JavaClass javaClass= new JavaClass();  //either rename this variable or the other one

int year= (Integer.parseInt(ed_year.getText().toString()));

javaClass.setYear(year);

如果这正是您的代码的外观,那么我猜它不会编译,因为int没有setYear()方法。另外,我不知道您是如何使用它的,但是当它Activity被销毁时,您将丢失该引用。如果这不是您想要的,那么您需要创建一个static变量JavaClass来保存该值或将其存储在持久存储中。

更新

问题是 in 的值JavaClass正试图从另一个Activity. 由于引用是在此创建的,Activity因此在转到下一个Activity尝试访问的位置时它会丢失。year在其中创建的变量JavaClass需要声明为static即使离开 this 时它也可以保留其值Activity

注意使用它的函数和访问它的方式需要更改为static引用。

于 2013-07-19T20:21:42.383 回答