New*_*Dev 1 java android getter-setter
我现在有两个班:RemindersDAO.java和ViewLocalReminders.java.
我正在尝试访问ViewLocalReminders.java中的变量,我试图从RemindersDAO.java中调用它.我是通过使用getter/setter方法组合来做到这一点的.但是,由于某种原因,我的变量值在getter方法中始终设置为0.这是代码:
ViewLocalReminders.java
public class ViewLocalReminders extends SherlockListActivity {
private long reminderID;
public void onCreate(Bundle SavedInstance) {
reminderID = 16;
setReminderID(reminderID);
}
public void setReminderID(long id) {
id = reminderID;
System.out.println("Reminder ID Value in Setter: " + reminderID);
}
public long getReminderID() {
return reminderID;
System.out.println("Reminder ID Value in Getter: " + reminderID);
}
}
Run Code Online (Sandbox Code Playgroud)
RemindersDAO.java
public class RemindersDAO extends SQLiteOpenHelper {
@SuppressWarnings("deprecation")
public Cursor getRowByID(Activity activity) {
String[] from = { _ID, NAME };
ViewLocalReminders viewLocalReminders = new ViewLocalReminders();
long reminderID = viewLocalReminders.getReminderID();
System.out.println("Value of Reminder ID in RemindersDAO: " + reminderID);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我为所有System.out.printlns获取的输出:
显然,在setter和getter方法之间发生了一些事情.在setter方法中,reminderID的值是16,应该是这样.但是,getter方法中的值为0.因此,当我在RemindersDAO.java中调用getter方法时,该值仍为0.我在这做错了什么?谢谢你的帮助!:)
这里:
public void setReminderID(long id) {
id = reminderID; //<-- wrong, should be the other way around
System.out.println("Reminder ID Value in Setter: " + reminderID);
}
Run Code Online (Sandbox Code Playgroud)
您应该使用reminderID = id,而不是
也:
public void onCreate(Bundle SavedInstance) {
reminderID = 16; //one of these two lines..
setReminderID(reminderID); //..should do it
}
Run Code Online (Sandbox Code Playgroud)
无需设置reminderId两次
| 归档时间: |
|
| 查看次数: |
5944 次 |
| 最近记录: |