android - 操作栏如何更改项目单击的 View

标签 android adapter android-actionbar click

如何在单击时更改操作栏中下拉导航列表中项目的 View ? 单击后,我希望显示的项目显示另一个 View (在布局中它被设置为不可见)。 我从 ActionBar.OnNavigationListener 中获得了 onNavigationItemSelected 方法,但它不会传递所单击项目的 View ,而只会传递项目在导航微调器中的位置。或者换句话说,为什么我不能从操作栏微调器中获取对选定 View 的引用? (就像我可以通过 OnItemClickListener() 中的 listview onItemClick 获取 View )

最佳答案

ActionBarSpinner 资源 ID 是:android:id/action_bar_spinner

获取 Spinner 资源 ID:

int resId = getResources().getIdentifier("action_bar_spinner", "id", "android");

使用资源 ID 获取对 Spinner 小部件的引用:

final Spinner spinner = (Spinner) getWindow().getDecorView().findViewById(resId);

现在您将能够访问所选 View :

CheckedTextView v = (CheckedTextView) spinner.getSelectedView();

您可以立即在 OnNavigationListener 中修改所选 View :

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getFragmentManager().beginTransaction()
    .replace(android.R.id.content, new MyFragment())
    .commit();

    SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this,
            R.array.action_list, android.R.layout.simple_spinner_dropdown_item);

    getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    int resId = getResources().getIdentifier("action_bar_spinner", "id", "android");
    final Spinner spinner = (Spinner) getWindow().getDecorView().findViewById(resId);

    this.getActionBar().setListNavigationCallbacks(mSpinnerAdapter, new ActionBar.OnNavigationListener() {

        @Override
        public boolean onNavigationItemSelected(int itemPosition,
                long itemId) {
            CheckedTextView v = (CheckedTextView) spinner.getSelectedView();
            // Modify selected view.
            return true;
        }

    });
}

关于android - 操作栏如何更改项目单击的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11259482/

相关文章:

java - 从资源中随机洗牌文本

Android ExoPlayer , VideoPlayer 中间的播放/暂停按钮

android 适配器数据已更改以通知主机 Activity

java - 安卓 : Spinner background gets dark and text white when installed on device

java - Android Fragment 类变量在 onOptionsItemSelected() 方法中不可用

android - 无法使用 Holoeverywhere 中的 ActionBarCompat 将 ActionView 添加到操作栏

android - @Android display/res/viewable 在 WebView

android - Realm 查询不更新我的适配器

android - 删除操作栏主页图标上的按下效果

android - 在手机之间交换本地文件的方法