好的,我正在尝试按照本教程进行操作:http://developer.android.com/training/index.html
我已经接受了ActionBar
培训。此时,我有一个带有操作栏和按钮的应用程序。该按钮位于编辑文本字段旁边,如果按下该按钮,则只会将您带到另一个包含您输入文本的视图。
现在,我尝试使用其中一个操作栏菜单选项调用相同的方法将您带到第二个视图。该处理程序位于主活动源代码中,我在此处粘贴了一个片段:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
sendMessage();
return true;
case R.id.action_settings:
// openSettings();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public void sendMessage(View view){
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
我想尝试在switch操作中的一个案例中调用sendMessage方法,但我不知道要放入什么参数。当单击该按钮时,处理程序在xml文件中:< / p>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
我不知道它是如何运作的。是我试图做的不可能吗?谢谢你的帮助。
答案 0 :(得分:0)
你不应该直接打电话。当您按Android
声明Button
时,android:onClick property
会调用它。如果你想在任何情况下调用它,只需传递一个空参数并检查空值
答案 1 :(得分:0)
只需创建辅助功能sendRealMessage
,然后在交换机中调用此功能。
public void sendMessage(View view){
sendRealMessage();
}
public void sendRealMessage(){
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
另一种方法是调用函数传递空值sendMessage(null)
,因为函数不直接使用它。
答案 2 :(得分:0)
您可以使用id命名xml上的按钮。
android:id="+@id/buttonnamehere
然后从您的代码中调用该按钮并执行单击操作使用方法:
Button mybut = (Button) findViewById(R.id.buttonnamehere);
点击次数:
mybut.performClick();
答案 3 :(得分:0)
U can Read the same button As View by
{
<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
Button btnXyz = (Button) findViewById(R.id.btnSend);
sendMessage(btnXyz)
}
答案 4 :(得分:0)
我认为您可以通过将视图传递为null来直接调用sendMessage()方法。