if string.equals(string)

时间:2012-03-29 08:54:02

标签: java android string if-statement equals

每当我尝试启动它时,它都无法正常工作...... 我想制作一个计算成绩平均值的应用程序 注意意味着学校成绩。 我使用德国名字对不起。

感谢您的支持。

    int NotenSchnitt = 0;
    int gesamt = 0;
    int aNoten = 10;
    int zero =0;

EditText Note1r = (EditText) findViewById(R.id.Note1r);   // get those EditText to string
String Note1 = Note1r.getText().toString();

EditText Note2r = (EditText) findViewById(R.id.Note2r);
String Note2 = Note2r.getText().toString();

EditText Note3r = (EditText) findViewById(R.id.Note3r);
String Note3 = Note3r.getText().toString();

EditText Note4r = (EditText) findViewById(R.id.Note4r);
String Note4 = Note4r.getText().toString();

EditText Note5r = (EditText) findViewById(R.id.Note5r);
String Note5 = Note5r.getText().toString();

EditText Note6r = (EditText) findViewById(R.id.Note6r);
String Note6 = Note6r.getText().toString();

EditText Note7r = (EditText) findViewById(R.id.Note7r);
String Note7 = Note7r.getText().toString();

EditText Note8r = (EditText) findViewById(R.id.Note8r);
String Note8 = Note8r.getText().toString();

EditText Note9r = (EditText) findViewById(R.id.Note9r);
String Note9 = Note9r.getText().toString();

EditText Note10r = (EditText) findViewById(R.id.Note10r);
String Note10 = Note10r.getText().toString();

TextView display;
Button bRefresh;
Button bCalculate;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    bCalculate = (Button) findViewById(R.id.bCalculate);
    bCalculate.setOnClickListener((OnClickListener) this);
    display = (TextView) findViewById(R.id.TvDisplay);

   if ("Note1".equals(Note1)) {        // Compare if Note1 is equal to Note1 
       aNoten --; }
   if ("Note2".equals(Note2)) {
       aNoten --; }
   if ("Note3".equals(Note3)) {
       aNoten --; }
   if ("Note4".equals(Note4)) {
       aNoten --; }
   if ("Note5".equals(Note5)) {
       aNoten --; }
   if ("Note6".equals(Note6)) {
       aNoten --; }
   if ("Note7".equals(Note7)) {
       aNoten --; }
   if ("Note8".equals(Note8)) {
       aNoten --; }
   if ("Note9".equals(Note9)) {
       aNoten --; }
   if ("Note10".equals(Note10)) {
       aNoten --; }
        }
        }

5 个答案:

答案 0 :(得分:2)

您在设置内容视图之前使用'findViewById()'。所以,所有Note#r都将为空。

EditText Note1r = (EditText) findViewById(R.id.Note1r);   // get those EditText to string
String Note1 = Note1r.getText().toString();

在调用onCreate()之前,在实例化活动类时执行所有这些行。

答案 1 :(得分:2)

我认为你的问题是你应该在setContentView(R.layout.main)之后调用onCreate()中的findViewById()。

答案 2 :(得分:0)

我认为你有问题,字符串note1,note2,...都是空的..

if ("Note1".equals(Note1)) {        // Compare if Note1 is equal to Note1 
   aNoten --; }
if ("Note2".equals(Note2)) {

所有这一部分都不应该放在oncreate中..因为oncreate的edittext字段将是空的。所以把一个按钮放一些东西..这样用户可以输入一些东西,然后检查条件..在onclick那个按钮..

答案 3 :(得分:0)

您应该在EditText方法中初始化onCreate。在其他地方,他们都变得空了

答案 4 :(得分:0)

您必须在setContentView()

之后使用以下所有编辑文字语句
EditText Note1r = (EditText) findViewById(R.id.Note1r);   // get those EditText to string

在通知用户输入文本的事件(如按钮单击)之后,您必须使用以下所有编辑文本阅读语句。否则,您将获得 null 值。

String Note1 = Note1r.getText().toString();

但是你做错了编程。纠正这些事情。