0

所以我基本上是按照这个教程来学习编程的基础知识,并且在响应动作按钮时,他们有这样的编码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle presses on the action bar items
    switch (item.getItemId()) {
        case R.id.action_search:
            openSearch();
            return true;
        case R.id.action_settings:
            openSettings();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

但他们根本不谈论案件部分,现在我不明白该怎么办。我认为(?)我需要为 opensearch() 和 opensettings() 创建一个方法,但是我在这里放了什么,案例部分是什么意思?感谢您的帮助!

4

3 回答 3

0

switch | case结构是一个条件语句。switch接收将与一个或多个值进行比较的变量。我通常认为它是一种优雅的写if语句的方式。

每个case都是与存储在提供给switch. 在这种情况下,R.id.action_searchandR.id.action_settings都是必须与item.getItemId().

如果没有满足前面的语句default,则将执行的操作。case

因此,根据 的值item.getItemId(),可能的操作是执行openSearch()openSettings()(均以 结尾return true)。但是,如果两个条件都不满足,则不会执行任何方法并且返回的值将是super.onOptionsItemSelected(item)

因此,如果您在该教程中找不到这两种方法的代码,那么很可能是向您抛出了一个抽象概念,以说明如果满足代码中的条件会发生什么操作。

于 2013-08-28T17:50:58.907 回答
0

它只是 Google 的一个模板,向您/世界展示如何处理在 android 中的菜单项(操作栏)的点击。如果我们谈论这种特殊情况,那么在这种情况下,他们正在处理两个菜单项的点击1. 搜索 2. 设置。

为了完成上述任务,他们使用了 switch(您也可以使用 if 和 else 语句)来验证哪个项目已被单击。

 switch (item.getItemId()) {   // Here they are checking the Id of item been clicked
    case R.id.action_search:   // Here they are examining if search item is clicked
        //openSearch();          // if above case satisfies, then they gonna invoke the openSearch() method.
        Toast.makeText(getApplicationContext(), "Pit Bull", Toast.LENGTH_LONG).show();  
        return true;
    case R.id.action_settings: // Here they are examining if action item is clicked 
        //openSettings();        // if above case satisfies, then they have invoked the openSettings() method. 
        Toast.makeText(getApplicationContext(), "Eminem", Toast.LENGTH_LONG).show(); 
        return true;

您可以通过替换您自己的逻辑在这些情况下做任何您想做的事情,例如:您可以在这里展示一个 Toast Like this

  Toast.makeText(getApplicationContext(), "Pit Bull", Toast.LENGTH_LONG).show();

您想学习编程很好,但是您必须首先具备Java的基本知识,否则将很难理解/学习Android。

祝你好运。。

于 2013-08-28T17:51:29.097 回答
0

放置您想要的任何其他代码,这些是示例方法,代替您可以将某些内容记录到 logcat 的方法,如Log.w("Test", "search button clicked");

基本上,案例部分包含单击按钮时要执行的操作,例如您可以开始一个新活动、打印某些内容、设置日志、单击时想要的任何代码,您都可以将其放在该特定按钮的案例中。

于 2013-08-28T18:18:32.377 回答