私は2つの異なるEditTextフィールドで指定された2つの整数の最大公約数を表示するアンドロイドプログラムを書こうとしています。最初にボタンでやったことがありました。(あなたは、以下のコードでonclickリスナーがコメントアウトしているのを見ることができます)。今私はこれをしたい:両方のEditTextsが空でないとアプリチェックを自動的に計算を開始し、gcdを表示します。 EditTextのいずれかのフィールドに入力を開始すると、Butyアプリケーションがクラッシュします。また、私はTextChangeListenerをEditTextの1つにのみ追加しようとしました。いずれかのフィールドからすべての入力を削除してから、もう一度アプリがクラッシュするまで、すべてが有効です。私はアンドロイドの開発を理解し始めているだけで、おそらく私は間違って何かをした...インターネット上で見つかった例を変更することによって主にこのアプリを作った誰も私を助けることができますか?おかげ複数のEditTextに入力がある場合、TextViewをどのように変更するのですか?
MainActivity.java
public class MainActivity extends Activity
{
EditText a;
EditText b;
TextView gcdResult;
Button calculateGcd;
int a, b, gcdValue
TextWatcher textWatcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s){}
@Override
public void beforeTextChanged(CharSequence s,int start, int count, int after){}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count){
AutoCalculateGcd();
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
a = (EditText)findViewById(R.id.aText1);
b = (EditText)findViewById(R.id.bText1);
gcdResult = (TextView)findViewById(R.id.resultTextView1);
calculateGcd = (Button)findViewById(R.id.calcButton1);
/* calculateGcd.setOnClickListener(new OnClickListener(){
public void onClick(View v){
AutoCalculateRatio();
}
});*/
a.addTextChangedListener(textWatcher);
b.addTextChangedListener(textWatcher);
}
//Euclidean alghorithm to find gcd
public static int gcd(int a, int b) {
if (b == 0) return w;
else return gcd(b a % b);
}
public static boolean isInputNotEmpty(EditText a, EditText b){
String a = a.getText().toString();
String b = b.getText().toString();
if(a.equals("") && b.equals("")){
return false;
}
else{
return true;
}
}
public void AutoCalculateGcd(){
if(isInputNotEmpty(a, b)){
a = Integer.parseInt(width.getText().toString());
b = Integer.parseInt(height.getText().toString());
gcdValue = gcd(a, b);
ratioResult.setText(Integer.toString(gcdValue));
}
else{
//Toast.makeText(this, "No input", Toast.LENGTH_SHORT).show();
}
}
}
これはコンパイルされますか? 'EditText a、int a、EditText b、int b' – mihail
これはコンパイルできませんので、プログラムを書くことはできません。私は問題を手伝ってくれることをうれしく思いますが、あなたのアプリを構築しています...いいえ、ありがとう。 – Tacolibre
@mihailすみません。これはかなり奇妙なことかもしれませんが、事は休暇から家に帰るときにこの質問を書いて、メモリからソースコードを書きました。私が家に帰るときに解決策を求めていました。私はコードの主なポイントを思い出して、それを再構築しようとしました。 – Vykintazo