【问题标题】:drop down menu on custom action bar自定义操作栏上的下拉菜单
【发布时间】:2014-06-17 07:26:27
【问题描述】:

我想要做的是用图像按钮构建一个操作栏,我想要做的是当我按下按钮时一个包含三个项目的下拉菜单,每次我按下一个项目时,我都会正确的活动..这是我的代码:

这是操作栏的 xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@drawable/black_pattern" >

    <TextView
        android:id="@+id/title_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textAllCaps="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#fff"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginLeft="8dp"
        android:src="@drawable/ic_launcher" />

    <ImageButton
        android:id="@+id/imageButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="8dp"
        android:background="@null"
        android:src="@android:drawable/ic_menu_rotate" />

</RelativeLayout>

这里是java文件:

公共类 MainActivity 扩展 Activity {

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

        ActionBar mActionBar = getActionBar();
        mActionBar.setDisplayShowHomeEnabled(false);
        mActionBar.setDisplayShowTitleEnabled(false);
        LayoutInflater mInflater = LayoutInflater.from(this);

        View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
        TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
        mTitleTextView.setText("My Own Title");

        ImageButton imageButton = (ImageButton) mCustomView
                .findViewById(R.id.imageButton);
        imageButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "Refresh Clicked!",
                        Toast.LENGTH_LONG).show();
            }
        });

        mActionBar.setCustomView(mCustomView);
        mActionBar.setDisplayShowCustomEnabled(true);
    }

}

所以我需要的是,当我单击图像按钮时,会出现一个包含以下值的下拉列表:

String[] actions = new String[] {
        "Bookmark",
        "Subscribe",
        "Share"
    };

每个人都带我去正确的活动,我是安卓新手..请帮助..

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:
        package info.androidhive.actionbar;
    
        import info.androidhive.actionbar.model.SpinnerNavItem;
        import info.androidhive.info.actionbar.adapter.TitleNavigationAdapter;
    
        import java.util.ArrayList;
    
        import android.app.ActionBar;
        import android.app.Activity;
        import android.app.SearchManager;
        import android.content.Context;
        import android.content.Intent;
        import android.os.Bundle;
        import android.view.Menu;
        import android.view.MenuInflater;
        import android.view.MenuItem;
        import android.widget.SearchView;
    
        public class MainActivity extends Activity implements ActionBar.OnNavigationListener{
    
            // action bar
            private ActionBar actionBar;
    
            // Title navigation Spinner data
            private ArrayList<SpinnerNavItem> navSpinner;
    
            // Navigation adapter
            private TitleNavigationAdapter adapter;
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
    
                actionBar = getActionBar();
    
                // Hide the action bar title
                actionBar.setDisplayShowTitleEnabled(false);
    
                // Enabling Spinner dropdown navigation
                actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    
                // Spinner title navigation data
                navSpinner = new ArrayList<SpinnerNavItem>();
                navSpinner.add(new SpinnerNavItem("Local", R.drawable.ic_location));
                navSpinner.add(new SpinnerNavItem("My Places", R.drawable.ic_my_places));
                navSpinner.add(new SpinnerNavItem("Checkins", R.drawable.ic_checkin));
                navSpinner.add(new SpinnerNavItem("Latitude", R.drawable.ic_latitude));     
    
                // title drop down adapter
                adapter = new TitleNavigationAdapter(getApplicationContext(), navSpinner);
    
                // assigning the spinner navigation     
                actionBar.setListNavigationCallbacks(adapter, this);
            }
    
            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
            ....
            }
    
            /**
             * On selecting action bar icons
             * */
            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
            ...
            }
    
            /**
             * Actionbar navigation item select listener
             * */
            @Override
            public boolean onNavigationItemSelected(int itemPosition, long itemId) {
            // Action to be taken after selecting a spinner item
                return false;
            }
        }
    
    
    Try This code :
    
    
    For better understanding go through following link
    http://www.androidhive.info/2013/11/android-working-with-action-bar/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多