案例和方法意味着什么?

时间:2013-08-28 17:31:04

标签: android methods case

所以我基本上跟随this tutorial学习编程的基础知识,并且在响应动作按钮时他们有这个编码:

@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()创建一个方法,但是我在这里放了什么,这个案例部分是什么意思? 谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

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

每个case都是对提供给switch的变量中存储的值进行的比较。在这种情况下,R.id.action_searchR.id.action_settings都是ID(字符串或数字。在这种情况下,我不知道哪个,因为我没有使用过教程)必须与之比较item.getItemId()

default是在以前的case语句都不符合的情况下将执行的操作。

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

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

答案 1 :(得分: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

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

你想要学习编程很好,但是你必须首先掌握java的基本知识,否则很难理解/学习Android。

祝你好运..

答案 2 :(得分:0)

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

基本上案例部分包含点击按钮时要执行的操作,就像你可以开始一个新活动,打印一些东西,设置一个日志,你想要点击的任何代码,你可以把它放在那个特定的情况下按钮。