Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 SDK(Eclipse):如何使用带有按钮的SetOnKeyListener?_Java_Android_Eclipse_Button - Fatal编程技术网

Java Android SDK(Eclipse):如何使用带有按钮的SetOnKeyListener?

Java Android SDK(Eclipse):如何使用带有按钮的SetOnKeyListener?,java,android,eclipse,button,Java,Android,Eclipse,Button,我只是不知道怎么做。代码对我来说太混乱了。谁能给我看一下代码并解释一下吗 我想要的是将enter keyCode分配给btn按钮,这样当用户触摸enter软键时,toast将像单击按钮一样显示 下面是使用代码的简单应用程序: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIn

我只是不知道怎么做。代码对我来说太混乱了。谁能给我看一下代码并解释一下吗

我想要的是将enter keyCode分配给
btn
按钮,这样当用户触摸enter软键时,toast将像单击按钮一样显示

下面是使用代码的简单应用程序:

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

  Button b = (Button) findViewById(R.id.btn);


  b.setOnClickListener(new View.OnClickListener() {


@Override

public void onClick(View v) {

    // TODO Auto-generated method stub

    Toast.makeText(MainActivity.this, "Hello World", Toast.LENGTH_SHORT).show();

}

    });

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

    }

请给我解释一下,不要只是写,我是Android新手,谢谢你的时间

好吧,你需要为你的按钮设置
OnKeyListener
,类似于你已经设置的
OnClickListener

b.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // your custom implementation
        if (KeyEvent.KEYCODE_ENTER == keyCode) { // match ENTER key            {
            // show the toast
            Toast.makeText(MainActivity.this, "Hello World",
                Toast.LENGTH_SHORT).show();
            return true; // indicate that we handled event, won't propagate it
        }
        return false; // when we don't handle other keys, propagate event further
    }
});

其他解释见评论。希望这有帮助

非常感谢您的回答,我还有一个问题,我有一个应用程序,我想在一个特定的按钮上使用OnKeyListener,但该按钮有很长的代码,它仍然会给我错误,您能告诉我如何实现它吗@kiruwkaWell,我建议您在新创建的简单按钮上尝试上面的代码,并验证它是否如您所期望的那样工作。然后,如果您需要修改现有的按钮,您可以更新您的问题或创建一个新的问题,提供所有详细信息(按钮代码、错误日志、您尝试的内容)。我在Emulator上尝试了它,但它在启动idk时停止了工作。原因:(我发布的代码在新按钮上运行良好(我自己刚刚确认)。您可能还有一些其他问题。请检查您的
logcat
输出,了解运行时错误的详细信息。@kiruwka:问题是我对Android完全陌生,我只从一个星期开始学习,我知道如何使用logcat,但并不十分熟悉,顺便说一句,这是我的其他应用程序代码,请检查一下,我知道它是L翁:[链接]()–灵魂收割者