Java 设置和获取方法不能正常工作
我有一个Java 设置和获取方法不能正常工作,java,android,Java,Android,我有一个MyFragment类,它接收来自广播的意图- if(intent.getAction().equals(BroadcastHelper.DEPARTURE_TIME)){ Bundle args = intent.getExtras(); if (args != null) { departure_time = args.getInt("Departure");
MyFragment
类,它接收来自广播的意图-
if(intent.getAction().equals(BroadcastHelper.DEPARTURE_TIME)){
Bundle args = intent.getExtras();
if (args != null) {
departure_time = args.getInt("Departure");
Log.d("hi","vehicle viv0" + departure_time);
setDepTime(departure_time);
}
}
else if(intent.getAction().equals(BroadcastHelper.ARRIVAL_TIME)){
Bundle args = intent.getExtras();
if (args != null) {
arrival_time = args.getInt("Arrival");
Log.d("hi","vehicle viv1" + arrival_time);
setArrivalTime(arrival_time);
}
}
}
};
//public method to set the time variable
public void setArrivalTime(int arrival_time){
Log.d("hi","vehicle viv2" + arrival_time);
this.arrival_time = arrival_time;
Log.d("hi","vehicle viv3" + this.arrival_time);
}
//public method to set the time variable
public void setDepTime(int departure_time){
this.departure_time = departure_time;
}
public int getArrivalTime(){
Log.d("hi","vehicle viv5" + this.arrival_time);
return this.arrival_time;
}
public int getDepTime(){
return this.departure_time;
}
我正在设置到达时间和离开时间的值,如上所述。现在,在我的班上,我正在做这些-
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
..........
Button okButton = (Button) rootView.findViewById(R.id.myxml);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyFragment mFragment = new MyFragment();
int depi = mFragment.getDepTime();
}
});
MyFragment mFragment = new StopListFragment();
int arri = mFragment.getArrivalTime();
Log.d("hi","vehicle viv6" + arri);
}
当我使用getArrivalTime()
时,我得到的是0
。日志如下:
D/hi: vehicle viv1 = 13012
D/hi: vehicle viv2 = 13012
D/hi: vehicle viv3 = 13012
D/hi: vehicle viv5 = 0
D/hi: vehicle viv6 = 0
有什么问题吗?您正在对片段的一个新实例调用getDepTime(),该实例显然没有任何数据,因为您刚刚创建了它
MyFragment mFragment = new MyFragment();
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
..........
Button okButton = (Button) rootView.findViewById(R.id.myxml);
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int depi = mFragment.getDepTime();
}
});
int arri = mFragment.getArrivalTime();
Log.d("hi","vehicle viv6" + arri);
}
在类的不同对象上使用setter和getter。尝试将片段初始化排除在全局值之外,并查看它是如何工作的。请参见上面的示例。由于“MyOwn”类创建了片段的新对象,因此将返回变量“arrival\u time”的默认初始化值。哦。。。那么我该怎么做呢?你的onCreateDialog方法在片段中吗?onCreateDialog在MyOwn类中。。。它不是一个片段类MyOwn类是哪种类型的类?这是一个活动吗?好的,我如何将片段对象实例传递给MyOwn类,并尝试将到达时间和离开时间设置为“静态”。