我正在學習爲android創建應用程序。我想編輯按下的按鈕的文本。設置按鈕的文字。 Android開發
我現在的工作,但我想知道是否有更好的方法。特別是對於行
Button vb = (Button) v;
vb.setText(et1.getText().toString());
什麼是正在傳入的視圖「v」?爲什麼我不能做類似v.setText()的事情;
package mobile.threethingstodo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements View.OnClickListener {
Button b1, b2, b3;
EditText et1;
String text = "default";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialize();
}
public void initialize() {
b1 = (Button) findViewById(R.id.button1);
b2 = (Button) findViewById(R.id.button2);
b3 = (Button) findViewById(R.id.button3);
et1 = (EditText) findViewById(R.id.editText1);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
b3.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Button vb = (Button) v;
vb.setText(et1.getText().toString());
}
傳遞給'onClick()'的'View'是一個按鈕,對不對?一個按鈕是一個視圖... – rgkirch 2014-09-29 22:43:02
@rgkirch是的,在這種情況下,傳遞給'onClick()'的'View'是每個你用來註冊'OnClickListener'的按鈕。但是,您可以使用**任何**'View'註冊一個'OnClickListener',即使那些不是按鈕。你不能認爲傳入的'View'將始終是一個按鈕。 – 2014-09-30 00:35:52
我可以驗證它是一個Button,如果它然後調用'setText()'? – rgkirch 2014-09-30 22:42:39