3

嗨,我是 Android 和 Eclipse 的新手。我刚刚遵循 developer.android.com 的教程。现在我正在添加 ActionBar

现在我在这部分

@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()。它说该方法openSettings()未定义类型DisplayMessageActivity。我现在该怎么办?谢谢

4

6 回答 6

3

Im up to the same section as you, they haven't provided the methods but you have to implement them as stated above.

However I found code to open up the device settings using this code in the switch;

case R.id.action_settings:
        startActivity(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS));
        return true;
于 2013-08-21T13:56:28.867 回答
3

openSearch()并且openSettings()是本教程的作者为了执行其他操作而创建的方法。仔细搜索代码,如果作者使它们可见,则必须在某处声明这些方法。

它们应该看起来像这样:

public void openSearch() {
    //Do something here.
}

public void openSettings() {
    //Do something here.
}

将 替换//Do something here为教程中的代码实现。

于 2013-08-08T11:29:52.607 回答
2

定义它们。

您的代码基于不完整的代码段。该代码段并不期望在您的应用程序中搜索或创建设置意味着什么……这是您要实施的工作。这个片段只关心向您展示如何建立操作栏,而不是整个应用程序。

于 2013-08-08T11:30:14.850 回答
2

应该定义方法 openSearch() 和 openSettings()。使用以下代码。会有帮助的。。

public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch(id){
    case R.id.action_search :
        startActivity(new Intent(Settings.ACTION_SEARCH_SETTINGS));
        return true;
    case R.id.action_settings :
        startActivity(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS));
        return true;
    default :
    return super.onOptionsItemSelected(item);
    }
}
于 2014-07-07T14:22:36.163 回答
1

也许您应该编写这些方法?

private void  openSearch(){
    //your code here
}

private void openSettings(){
     //your code here
}
于 2013-08-08T11:30:00.540 回答
1

这两种方法只是选择一个选项如何启动一个动作的例子。未提供实现,因为它与示例无关。请注意,它不是一个教程,而是一个关于如何向选项项添加行为的单一且不可编译的示例。

于 2013-08-08T11:30:44.973 回答