android - 添加后如何在 Android 中实现下拉导航操作栏?

标签 android drop-down-menu navigation android-actionbar

按照本指南,http://wptrafficanalyzer.in/blog/adding-drop-down-navigation-to-action-bar-in-android/

我能够添加我的下拉导航栏。单击事件和所有功能。现在,我该如何做到这样,一旦选择了一个选项,它就会导航到具有自己的布局和不同功能的不同屏幕。

任何帮助都会很棒,提前致谢!

编辑:这就是我所拥有的。我的应用程序运行了大约一毫秒,我可以瞥见“Hello World”,然后它崩溃了。顺便说一句,如果这很重要的话,我正在使用 Sherlock。

package com.poe.statcalc;

import com.actionbarsherlock.app.SherlockActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;

public class MainActivity extends SherlockActivity {

 /** An array of strings to populate dropdown list */
String[] actions = new String[] {
    "Bookmark",
    "Subscribe",
    "Share",
    "Something"

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    /** Create an array adapter to populate dropdownlist */
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), R.layout.sherlock_spinner_item, actions);

    /** Enabling dropdown list navigation for the action bar */
    getSupportActionBar().setNavigationMode(com.actionbarsherlock.app.ActionBar.NAVIGATION_MODE_LIST);

    /** Defining Navigation listener */
    ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {

        @Override
        public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            switch(itemPosition) {
            case 0:
                Intent i = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(i);
                break;
            case 1:
                //...
                break;
            }
            return false;
        }
    };

    /** Setting dropdown items and item navigation listener for the actionbar */
    getSupportActionBar().setListNavigationCallbacks(adapter, navigationListener);
    adapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

}

@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    getSupportMenuInflater().inflate(R.menu.activity_main, menu);
    return super.onCreateOptionsMenu(menu);
}

最佳答案

你需要操纵你的 ArrayAdapter如果你想改变元素,但我不认为你可以使用 ArrayAdapter<String>该孔的类。您可能需要使用字符串以外的其他内容。

为了处理点击,您需要更改 onNavigationItemSelected功能:

@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
    switch(itemPosition) {
    case 0:
        Intent i = new Intent(this, SecondActivity.class);
        startActivity(i);
        break;
    case 1:
        // ...
        break;
    }
    return false;
}

关于android - 添加后如何在 Android 中实现下拉导航操作栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13958912/

相关文章:

javascript - WordPress 导航子菜单在悬停时向右移动元素

swift - 如何根据 SwiftUI 中的 @State 更改导航 View 的导航 View 样式?

ios - 将小按钮添加到单元格的右侧,指示下拉列表中的行数

javascript - 基于图标的导航 Bootstrap 和 Jquery Mobile

android - 将信息传递给渲染器

Android:带有标题和文本主体的 ScrollView

java - 在 Kotlin 中开发的 Android 库模块导出到 Java 应用程序导致 : Lkotlin/jvm/internal/Intrinsics 解析失败

android - 检查应用程序是否在平板电脑上运行

html - 带有 dropdown-menu-right 类的下拉菜单没有右对齐

twitter-bootstrap - Bootstrap 3.0 从左滑动菜单