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类,并尝试将到达时间和离开时间设置为“静态”。