我开始进行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。
答案 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);
}
}