2

我有一個帶有2個選項卡的選項卡式佈局。每個選項卡可以採用雙重形式收集一些數據,例如52.363。當任何一個選項卡中的某個按鈕被按下時,它們會打開一個新的活動,顯示前一個選項卡中輸入的數字。但是,當我按下提交按鈕時,一個值不會顯示出來。任何想法爲什麼?片段和活動之間沒有傳遞值

片段標籤碼(兩個標籤是相同的,現在,還是不言自明的被排除份):

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view; 
     view = inflater.inflate(R.layout.advfrag_layout, container, false); 
     return view; 
    } 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    inSnow = (EditText) getView().findViewById(R.id.inchesSnow); 
    calc = (Button) getView().findViewById(R.id.button); 
    results = (TextView) getView().findViewById(R.id.resultView); 
    calc.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        try{ 
         inchSnow = Double.parseDouble(inSnow.getText().toString()); 
        }catch (NumberFormatException ex){ 
         results.setText("Field Blank!"); 

        } 
       Intent intent = new Intent(getActivity().getBaseContext(), ResultPost.class); 
       intent.putExtra("inchSnow", inchSnow); 
       getActivity().startActivity(intent); 
     } 
    }); 

} 

,該數據被髮送到,ResultPost.Class(同樣的活性,只有基本部分):

public class ResultPost extends ActionBarActivity { 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_result_post); 
     AdvancedFragment advancedFragment= new AdvancedFragment(); 

     Intent intent = getIntent(); 
     double inchesn = intent.getDoubleExtra("inchSnow", 0); 
    } 
} 

的ResultPost.Class的推移改變一個TextView顯示此數據,但TextView的值保持爲「0」,這是即使我已經給它的默認值一個不同的值,例如6.

+0

您確認'intent.putExtra( 「inchSnow」,inchSnow);'把正確的價值? – Szymon

+0

我該如何驗證?我已經在程序中定義了雙'inchSnow'作爲值,但它從不出現在'ResultPost.Class'中。我知道'inchSnow'有一個與它相關的值,因爲我在片段中有一個'TextView',它顯示了用於測試目的的輸入值。 –

+0

您是否嘗試瞭解代碼並檢查投入意圖的值? – Szymon

回答

0

嘗試這樣的:

public class ResultPost extends ActionBarActivity { 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_result_post); 
     AdvancedFragment advancedFragment= new AdvancedFragment(); 

     Intent intent = getIntent(); 
     double inchesn = intent.getDoubleExtra("inchSnow",0.0); 
    } 
}