这是我的第一个问题。通常我可以通过 Gogle 找到我的答案,这通常只会让我进入 stackoverflow,但这最终把我推到足以问我自己的问题,可能很明显以前没有人需要问它!
无论如何,这不是特别针对任何事情。只是想掌握一下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
,但我想在 main 方法中创建它,然后将信息传递给OnClick
.
谢谢!