整数变量不递增

时间:2014-11-23 22:36:52

标签: android string

我的代码有问题吗?我不明白为什么它不能正常工作。如果我的编辑文本中的字符串与另一个字符串相同,我想增加该值,但是,不知何故,整数不会增加。这是我的代码

    public class MainActivity extends Activity {
    int score ;
    EditText q1;
    EditText q2;
    EditText q3;
    EditText q4;
    String ans1, ans2, ans3, ans1a,ans1b,ans1c;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        q1 = (EditText) findViewById(R.id.etAnswer1);
        q2 = (EditText) findViewById(R.id.etAnswer2);
        q3 = (EditText) findViewById(R.id.etAnswer3);
        q4 = (EditText) findViewById(R.id.EtScore);
        score = 0;
    }


    public void Calculate(View v){
        ans1=q1.getText().toString();
        ans2 = q2.getText().toString();
        ans3 = q3.getText().toString();

        if(ans1.equalsIgnoreCase("Obama")){ 
            score = score + 1;
        }

        if(ans2.equalsIgnoreCase("Naira")){

            score = score + 1;
        } 

        if(ans3.equalsIgnoreCase("Illinois")){

            score = score + 1;
        }


        q4.setText(String.valueOf(score));
    }

}

3 个答案:

答案 0 :(得分:0)

选中此http://developer.android.com/reference/android/text/TextWatcher.html并将所有修改文字设为afterTextChanged(),beforeTextChanged(), onTextChanged().

    q1.addTextChangedListener(new TextWatcher() {

      public void afterTextChanged(Editable s) {
             //call method where you are chceking
             isMatch(s);
      }

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {
      }

      public void onTextChanged(CharSequence s, int start, int before, int count) {
      }
   });


   private void isMatch(String s){
    if(s.equalsIgnoreCase("Obama")){ 
        score = score + 1;
    }

    if(s.equalsIgnoreCase("Naira")){

        score = score + 1;
    } 

    if(s.equalsIgnoreCase("Illinois")){

        score = score + 1;
    }


    q4.setText(String.valueOf(score));

   }

答案 1 :(得分:0)

MainActivity.java



package com.example.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;

public class MainActivity extends Activity {
	int score;
	EditText q1;
	EditText q2;
	EditText q3;
	EditText q4;
	String ans1, ans2, ans3, ans1a, ans1b, ans1c;

	@Override
	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		q1 = (EditText) findViewById(R.id.etAnswer1);
		q2 = (EditText) findViewById(R.id.etAnswer2);
		q3 = (EditText) findViewById(R.id.editText3);
		q4 = (EditText) findViewById(R.id.editText4);
		score = 0;
	}



	public void Calculate(View v) {
		ans1 = q1.getText().toString();
		ans2 = q2.getText().toString();
		ans3 = q3.getText().toString();

		if (ans1.equalsIgnoreCase("Obama")) {
			score = score + 1;
		}

		if (ans2.equalsIgnoreCase("Naira")) {

			score = score + 1;
		}

		if (ans3.equalsIgnoreCase("Illinois")) {

			score = score + 1;
		}

		q4.setText(String.valueOf(score));
	}

}




activity_main.xml中



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/etAnswer1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/etAnswer2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <EditText
        android:id="@+id/editText4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="Calculate"
        android:text="Button" />

</LinearLayout>
&#13;
&#13;
&#13;

以上代码生成Result

答案 2 :(得分:0)

好的,这就是问题,

首先,我假设您要在按钮点击事件上计算“得分”。但是没有onClick事件回调的位置。在这种情况下,只有在创建活动时才会将“得分”制成表格。

所以这就是我要做的(假设你的XML被正确定义),

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    View rootview = inflater.inflate(R.layout.yourLayoutHere, container,false);
         q1 = (EditText) findViewById(R.id.etAnswer1);
         q2 = (EditText) findViewById(R.id.etAnswer2);
         q3 = (EditText) findViewById(R.id.etAnswer3);
         q4 = (EditText) findViewById(R.id.EtScore);
        rootview.findViewById(R.id.yourButtonHere).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          Calculate();

        }
    });

    return rootview;
}   



public void Calculate() {
        ans1 = q1.getText().toString();
        ans2 = q2.getText().toString();
        ans3 = q3.getText().toString();

        if (ans1.equalsIgnoreCase("Obama")) {
            score = score + 1;
        }

        if (ans2.equalsIgnoreCase("Naira")) {

            score = score + 1;
        }

        if (ans3.equalsIgnoreCase("Illinois")) {

            score = score + 1;
        }

        q4.setText(String.valueOf(score));
    }
相关问题