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