0

これは私の最初の質問です。通常、私は Gogle を介して自分の答えを見つけることができますが、それは通常とにかくスタックオーバーフローにつながりますが、これは最終的に私自身の質問をするのに十分なほど私を後押ししました。

とにかく、これは特に何かのためではありません。ハンドルを取得しようとしているだけonlicklistenersです。この場合、具体的には inner-class onclicklisteners.

問題:プログラムが のコンストラクターをスキップするのはなぜMathButtonClickedですか? 私はそれCharSequenceでしたが、コンストラクターが呼び出されることはありません(logcatを介してこれを知っています)。

public class Main extends Activity {


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

    Button mathButton = (Button) findViewById(R.id.mathButton);
    EditText et = (EditText) findViewById(R.id.inputText);
    CharSequence inputText = et.getText().toString();


    mathButton.setOnClickListener(new MathButtonClicked(inputText));
}

private class MathButtonClicked implements OnClickListener {
    private CharSequence receivedText;

    public MathButtonClicked(CharSequence inputText) {
        this.receivedText=inputText;
        Log.d("Constructor", " " + receivedText);
    }



    public void onClick(View v) {
        Log.d("Onclick", " " + receivedText);
        Intent intent = new Intent(Main.this, Math.class);
        intent.putExtra("inputText", getText());
        startActivity(intent);          
    }

    public CharSequence getText(){
        return receivedText;
    }
    }//end inner class
} //end main

引数がパラメーターと一致する場合、コンストラクターは常に呼び出されませんか? @_@

また、私が達成しようとしているのは、EditTextビュー内のテキストを新しいインテントに渡すことです。

EditTextでオブジェクトを作成することでこれを行うことができますOnClickが、メイン メソッドで作成してから、情報を に渡したいと考えていますOnClick

ありがとう!

4

1 に答える 1

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

Button mathButton = (Button) findViewById(R.id.mathButton);
EditText et = (EditText) findViewById(R.id.inputText);
CharSequence inputText = et.getText().toString();



 mathButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                     String receivedText=inputText;
         Log.d("Onclick", " " + receivedText);
                     Intent intent = new Intent(getApplicationContext(), Math.class);
                     intent.putExtra("inputText", receivedText);
                     startActivity(intent);

        }
    });
于 2012-09-26T15:04:59.417 に答える