Open top menu



In this Tutorial we will  explain overflow menu item click on setting icon add to action bar in android.  show example.


Main_Activity.java


import java.util.ArrayList;
import java.util.List;

import android.app.ActionBar;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends Activity {
  
PopupWindow popupWindow;
    String fiterpopUpContents[];
    private ActionBar actionBar;
    RelativeLayout layout;


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

        actionBar = getActionBar();

        layout=(RelativeLayout)findViewById(R.id.text);

        List<String> filterList = new ArrayList<String>();
        filterList.add("Red::1");
        filterList.add("Green::2");
        filterList.add("Yellow::3");
        fiterpopUpContents = new String[filterList.size()];
        filterList.toArray(fiterpopUpContents);


        // initialize pop up window
        popupWindow = popupWindow();       
        // button on click listener 
        
        actionBar.setDisplayOptions(actionBar.getDisplayOptions()
                | ActionBar.DISPLAY_SHOW_CUSTOM);
        ImageView imageView = new ImageView(actionBar.getThemedContext());
        imageView.setScaleType(ImageView.ScaleType.CENTER);
        imageView.setImageResource(R.drawable.setting);
        ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(
                                                 ActionBar.LayoutParams.WRAP_CONTENT,
                                                 ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT
                                                | Gravity.CENTER_VERTICAL);

        layoutParams.rightMargin = 40;
        imageView.setLayoutParams(layoutParams);
        actionBar.setCustomView(imageView);
         
        imageView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
popupWindow.showAsDropDown(v, -5, 0);
}
});
    }
    
    public PopupWindow popupWindow(){ 


                         // initialize a pop up window type
    PopupWindow popupWindow = new PopupWindow(this); 
                        // the drop down list is a list view
     ListView listViewDogs = new ListView(this);                 
                       // set our adapter and pass our pop up window contents
    listViewDogs.setAdapter(dogsAdapter(fiterpopUpContents));        
                       // set the item click listener
    listViewDogs.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View v, int position,
long arg3) {

// TODO Auto-generated method stub


if(position==0){
layout.setBackgroundColor(Color.parseColor("#ff0000"));
 

 
if(position==1){
layout.setBackgroundColor(Color.parseColor("#099b17"));

if(position==2){
layout.setBackgroundColor(Color.parseColor("#f7db09"));

}
});
    
    popupWindow.setFocusable(true);
    popupWindow.setWidth(250);
    popupWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);          
    popupWindow.setContentView(listViewDogs);
    return popupWindow;
    
    }



 
    private ArrayAdapter<String> dogsAdapter(String dogsArray[]) {
     
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,                                                                                                  android.R.layout.simple_list_item_1, dogsArray) {

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                                        // setting the ID and text for every items in the list
                String item = getItem(position);
                String[] itemArr = item.split("::");
                String text = itemArr[0];
                String id = itemArr[1];


                                // visual settings for the list item
                TextView listItem = new TextView(MainActivity.this); 
                listItem.setText(text);
                listItem.setTag(id);  
                listItem.setTextSize(20);
                listItem.setPadding(10, 10, 10, 10);
                listItem.setTextColor(Color.WHITE);                              
                return listItem;
            }
        };
         
        return adapter;
    }

}








0 comments