将浮动从活动发送到活动

时间:2014-06-30 14:07:56

标签: android android-activity

我开始进行android开发,而且我不知道为什么我的代码无效。目标很简单:我有一个主要活动,菜单和第二个活动。我想从主要活动向第二个活动发送浮动值,并且......它不起作用!

以下是我的主要代码:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_about:
        Intent intent = new Intent(MainActivity.this, AboutActivity.class);
        startActivity(intent);

        return true;
    case R.id.menu_home:

        return true;
    case R.id.menu_settings:        
        intent = new Intent(MainActivity.this, SettingsActivity.class);
        startActivity(intent);

        return true;
    case R.id.menu_battstat:
        intent = new Intent(MainActivity.this, StatsActivity.class);
        intent.putExtra("consumOn", 4);
        intent.putExtra("consumOff", 5);
        startActivity(intent);

        return true;
    default:
        return super.onOptionsItemSelected(item);
    }

}

和StatsActivity.class

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.stats_main);

    Intent intent = getIntent();

    float consumOn  = intent.getFloatExtra("consumOn", 0);
    float consumOff = intent.getFloatExtra("consumOff", 0);

    EditText editTextA = (EditText)findViewById(R.id.editText1);
    editTextA.setText(String.valueOf(consumOn), TextView.BufferType.EDITABLE);

    EditText editTextB = (EditText)findViewById(R.id.editText2);
    editTextB.setText(String.valueOf(consumOff), TextView.BufferType.EDITABLE);
} 

当我启动我的代码时,它仍然是0而不是4和5.任何想法? THX。

4 个答案:

答案 0 :(得分:3)

getFloatExtra替换为

Bundle bundle = getIntent().getExtras();
float yourFloat = bundle.getFloat("key");

答案 1 :(得分:2)

我打算在这里试探说可能putExtra被解释为int而不是float,所以它无法找到它。尝试替换这些行

    intent.putExtra("consumOn", 4);
    intent.putExtra("consumOff", 5);

    intent.putExtra("consumOn", 4f);
    intent.putExtra("consumOff", 5f);

因为你实际上没有在任何地方定义过他们的类型而且他们不是变量。

答案 2 :(得分:0)

您应该将包含浮动的bundle传递给intent,然后才提取它们

答案 3 :(得分:0)

我真的很惊讶你的意图正在启动......看起来你只是在第一种情况下初始化意图尝试将Intent声明移出开关

public boolean onOptionsItemSelected(MenuItem item) {
    Intent intent;
    switch (item.getItemId()) {

     case R.id.menu_about:
        intent = new Intent(MainActivity.this, AboutActivity.class);
        startActivity(intent);
        return true;
    case R.id.menu_home:
        return true;
    case R.id.menu_settings:        
        intent = new Intent(MainActivity.this, SettingsActivity.class);
        startActivity(intent);
        return true;
    case R.id.menu_battstat:
        intent = new Intent(MainActivity.this, StatsActivity.class);
        intent.putExtra("consumOn", 4f);
        intent.putExtra("consumOff", 5f);
        startActivity(intent);
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}