Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android编程中:如何调用接受View类型参数的方法?_Java_Android_Eclipse - Fatal编程技术网

Java 在Android编程中:如何调用接受View类型参数的方法?

Java 在Android编程中:如何调用接受View类型参数的方法?,java,android,eclipse,Java,Android,Eclipse,好的,我试着按照这个教程: 我参加了操作栏的培训。现在,我有了一个带有操作栏和按钮的应用程序。该按钮位于“编辑文本”字段旁边,如果您按下它,它只会将您带到另一个包含键入文本的视图 现在,我尝试调用相同的方法,使用操作栏菜单选项之一将您带到第二个视图。该处理程序位于主活动源代码中,我将其中的一个片段粘贴到此处: @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle pres

好的,我试着按照这个教程:

我参加了
操作栏的培训。现在,我有了一个带有操作栏和按钮的应用程序。该按钮位于“编辑文本”字段旁边,如果您按下它,它只会将您带到另一个包含键入文本的视图

现在,我尝试调用相同的方法,使用操作栏菜单选项之一将您带到第二个视图。该处理程序位于主活动源代码中,我将其中的一个片段粘贴到此处:

    @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文件中:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" />


我不知道这是怎么回事。我想做的事不可能吗?谢谢你的帮助。

你不应该直接打电话
Android
在按下
按钮时调用它
在何处声明
Android:onClick属性
。如果您想在任何情况下调用它,只需传递一个null参数并检查null值

,只需创建一个辅助函数
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);
}

另一种方法是通过null值调用函数
sendMessage(null)
,因为函数不直接使用它。

您可以在xml中用id命名按钮

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);
}
android:id=“+@id/buttonnamehere

然后从代码中调用按钮并执行单击操作使用方法:

Button mybut=(Button)findviewbyd(R.id.buttonnamehere);

点击:

mybut.performClick();

U可以读取与View by相同的按钮
{
按钮btnXyz=(按钮)findViewById(R.id.btnSend);
发送消息(btnXyz)
}

我认为您可以通过将视图传递为null直接调用sendMessage()方法。

哦,天哪,太……天才了!非常感谢!:D@StarSky的答案是有效的,但我认为这是我正在寻找的真正答案。也是最有效的。谢谢@blackbelt!