1

何らかの理由で、2 つのテキスト ボックスに何を入力しても、一致するという応答が返されます。最初は使っ==ていてうまくいかなかったので、切り替えてみましたif( a.equals( b ))

私はまだ立ち往生しています。

助けてください!

package net.2TextboxesStringCompare;

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

/*
 * 2TextboxesStringCompare
 */


public class Code8 extends Activity implements OnClickListener {

    Button accept;
    EditText numberStudents, numberStudents2;

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


        numberStudents = new EditText(this);
        numberStudents2 = new EditText(this);

        // find our button in the UI by its ID
        accept = (Button)findViewById(R.id.accept);

        // set listeners for the button. Since our current class
        // implements the OnClickListener interface
        // we can simply pass the current object ("this") into
        // the listener. The appropriate method will therefore
        // be called when the event fires.
        accept.setOnClickListener(this);

    }

    /* implement an event handler that responds to click events */
    public void onClick(View v){
        String a = numberStudents.getText().toString();
        String b = numberStudents2.getText().toString();
        if( a.equals( b ) )
            Toast.makeText(getApplicationContext(), "Matches", 
            Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(getApplicationContext(), numberStudents.getText()+" !=      
            "+numberStudents2.getText(), Toast.LENGTH_SHORT).show();
    }

}
4

3 に答える 3

6

編集テキストが表示されませんでした。

次のコードを使用します。

LinearLayout ll = (LinearLayout)findViewById(R.id.linLayout);

linLayoutはあなたのLinearLayoutinの IDmain.xmlです。あなたが持っているものに置き換えてください。

ll.setOrientation(LinearLayout.VERTICAL);

 numberStudents = new EditText(this);
 numberStudents2 = new EditText(this);

ll.addView(numberStudents);
ll.addView(numberStudents2);

または、XML レイアウトで edittext を作成する場合は、次を使用します。

numberStudents = (EditText)findViewById(R.id.et1);
numberStudents2  = (EditText)findViewById(R.id.et2);

比較部分:

if(a.trim().equals(b))
{
     // show toast
}
于 2013-03-18T10:21:17.300 に答える
0

使用するeditTextを宣言していません。基本的に、同じデータで名前が異なる2つのStringオブジェクトを比較しているため、常に一致が表示されます。これを修正するには

1.main.xmlに移動します

2.editTextを作成します。たとえば、editText1とeditText2を作成します。

3.次のようにurコードでそれらを使用します

numberStudents = (EditText)findViewById(R.id.editTex1);
numberStudents2  = (EditText)findViewById(R.id.editTex2);

今では大丈夫なはずです。

于 2013-03-18T10:40:43.460 に答える
0

このコードを見てください。これは、送信時またはボタンクリック時に編集テキストから取得する文字列を確認する方法です。

package com.example.testr;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button button1;
    EditText editText1, editText2;
    Context context;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        context=this;
        button1=(Button)findViewById(R.id.button1);

        editText1=(EditText)findViewById(R.id.editText1);
        editText2=(EditText)findViewById(R.id.editText2);



        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub



                if ((editText1.getText().toString().trim()).equals(editText2.getText().toString().trim())) {

                    Toast.makeText(context, "both are equal", 1000).show();
                }
                else
                {
                    Toast.makeText(context, "both are not  equal", 1000).show();
                }
            }
        });




    }



}
于 2013-03-18T10:32:26.297 に答える