我是Android Studio的新手,我一直在查看官方教程,并找到了这段代码:
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
但是,我不知道sendMessage()
方法是如何与我们在教程中创建的按钮相关联的。哪一行提到此方法对应于按钮,该按钮的名称为button_send
,值为Send
?
答案 0 :(得分:3)
在您的layout
文件android:onClick="sendMessage"
属性中,您应该在点击时调用此函数。
您不需要自己将按钮链接到此方法,android:onClick
属性会为您执行此操作。如果您想自己将该按钮链接到此功能,则必须使用id
为该按钮添加android:id="@+id/button_send"
,然后以这种方式链接:
Button send = (Button) findViewById(R.id.button_send);
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sendMessage(v);
}
});
答案 1 :(得分:1)
在XML中添加此属性" android:onClick =" $ {methodName}"在Button元素中。
OR:
您可以创建按钮对象并参考UI。
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Refference UI
Button button = findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
sendMessage(view);
}
});
}
/** Called when the user taps the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.editText);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}