2016-06-28 6 views
0

私は放送からのインテントを受け取る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; 
    } 

私はARRIVAL_TIMEの値を設定し、上記のように出発予定していますが。今MyOwnクラスから、私はこれらをやっている -

@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 

間違いがありますか?

答えて

-1

"MyOwn"クラスがFragmentの新しいオブジェクトを作成するので、変数 'arrival_time'のデフォルトの初期化された値が返されます。

+0

OkフラグメントオブジェクトインスタンスをMyOwnクラスに渡すにはどうすればいいですか? – Samuel909

+0

arrival_time&departure_timeを 'static'にしてみてください。 – sJy

+0

クール:)それは働いた。ありがとうございました – Samuel909

0

あなたはちょうどそれあなたは異なるオブジェクト上のをセッターとゲッターを使用

+0

ああ...どうすればいいですか? – Samuel909

+0

はフラグメント内のonCreateDialogメソッドですか? – Apperside

+0

onCreateDialogはMyOwnクラスにあります...フラグメントクラスではありません – Samuel909

0
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); 
     } 

を作成したので、明らかに任意のデータを持っていない、フラグメントの新しいインスタンスにgetDepTime()を呼び出していますクラス。フラグメント初期化をグローバル値に除外して、それがどのように動作するかを確認してください。上記の例を参照してください。

+0

私は同じことを試みましたが、それでも同じです。 0 always – Samuel909

関連する問題