(编辑能够比较字符串) 我有1个TextView和2个按钮,一个按钮是"月"另一个按钮"周"。 我试图将Textview相应地更改为按下的按钮,例如Month,Week 当我第一次开始活动时,它显示"月"如预期的那样。
当我按下"周"按钮始终显示"周"在TextView中,即使我点击"月"按钮仍然显示周视图。
调试说当我按下"月" ,"月" =" true",然后onCreate值仍为" True",但在第一个If语句中
if (extras != null){ // <-------here is still true
month = extras.getString(month); // <-------here is false
}
这个价值突然变为&#34; false&#34;
我知道我可以在按钮中设置文字,但稍后我会添加图形来显示数据,所以我想在创建时完成。每次创建视图时,都会检查选择哪个视图(通过比较字符串)并显示消息和图形。第一次运行以显示月视图。
我做错了什么?
继承代码
package com.isma.report;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class report1 extends Activity{
TextView viewtime;
String month = "true";
Intent starterIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.report);
starterIntent = getIntent();
Bundle extras = getIntent().getExtras();
if (extras != null) {
month = extras.getString("month");
}
// Set the text
viewtime = (TextView) findViewById(R.id.StudentReportText);
if (month.equals("true")){
viewtime.setText("Monthly View");
}
if{month.equals("false")){
viewtime.setText("Weekly View");
}
//Month View Button
Button bMonth = (Button) findViewById(R.id.monthincome);
bMonth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
starterIntent.putExtra(month, "true");
startActivity(starterIntent);
finish();
}
});
//Week View Button
Button bWeek = (Button) findViewById(R.id.weekincome);
bWeek.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
starterIntent.putExtra(month, "false");
startActivity(starterIntent);
finish();
}
});
}
}
答案 0 :(得分:2)
if (month == "true")
您无法使用==
比较Java中的字符串。使用equals(...)
- 示例...
if (month.equals("true"))
答案 1 :(得分:0)
最后我设法解决了它!
首先感谢你帮助我的一切。
现在修复非常简单。
我将String月的初始化移动到onCreate方法的内部,没有任何值。 如果第一次运行或没有按任何按钮,我还扩展了if语句以赋值true。
String month = "";
Bundle extras = getIntent().getExtras();
if (extras != null) {
month = extras.getString(month);
}
else{
month = "true";
}
我也初始化了onClick方法中没有值month变量
String month = "";
非常简单,但我花了2天才弄明白! ,p 再次感谢你们