简体   繁体   中英

popup menu for spinner in android

i want a spinner with items'A','B','C'

if u select 'A' or'B' means the chronometer has to run.

while select the item 'C' the popup window has 2 open with edittext and 'Ok' button..

if you type the'D' in the edittext means that has too add in the spinner while add the chonometer has to run

here is my code:

public class Starttracker extends Activity {

PopupWindow popupWindow;


    String[] Items = {
                "A",
                "B",
                "C",
                "D",

        };

    Spinner s1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start);


  s1 = (Spinner) findViewById(R.id.spinner);

    final ArrayAdapter<String> adapter  = new ArrayAdapter<String>(
            this,android.R.layout.simple_spinner_item,Items);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s1.setAdapter(adapter);
    s1.setOnItemSelectedListener(new OnItemSelectedListener()
    {
        public void onItemSelected(AdapterView<?> arg0, 
        View arg1, int arg2, long arg3) 
        {
            int index = s1.getSelectedItemPosition();
            Toast.makeText(getBaseContext(), 
                "You have selected item : " + Items[index], 
                Toast.LENGTH_SHORT).show(); 

            if (index==3)
            {
      LayoutInflater inflater = (LayoutInflater) Starttracker.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      popupWindow = new PopupWindow(inflater.inflate(R.layout.popup,null, false),300,100,true);
     // RelativeLayout01 is Main Activity Root Layout
      popupWindow.showAtLocation(findViewById(R.id.relativelayout), Gravity.CENTER, 0,0);

         } else
            {
                Chronometer chrono=(Chronometer)findViewById(R.id.chronometer);
                chrono.start();
            }
        }

        public void onNothingSelected(AdapterView<?> arg0) {}
    });  




}

can any help to me

final String[] items = {"A", "B", "C"};

final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Choose me!");
builder.setItems(items, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int item) {
        if ("A".equals(items[item]) || "B".equals(items[item])) {
            // run whatever...
        }

        if ("C".equals(items[item])) {
            final EditText edit = new EditText(context);

            final Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("Choose a custom option.");
            builder.setView(edit);
            builder.setPositiveButton("Save", new OnClickListener() {

                public void onClick(final DialogInterface dialog, final int which) {
                    String input = edit.getText().toString();
                    // add input to array, or do whatever.

                    dialog.dismiss();
                }
            });
            builder.create().show();
        }

        dialog.dismiss();
    }
});
builder.create().show();

I didn't test it (written straight from my mind), but it should work with a few modifications.

Good luck
Tom

TRy this code.. public class Starttracker extends Activity {

String[] Items = {
            "A",
            "B",
            "C",
            "D",

    };

Spinner s1;

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.start);

s1 = (Spinner) findViewById(R.id.spinner);

final ArrayAdapter<String> adapter  = new ArrayAdapter<String>(
        this,android.R.layout.simple_spinner_item,Items);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);

} public boolean onItemSelected(AdapterView parent,View v, int position, long id) {

 if (((items[position])=="A")||((items[position])=="B")) {

Chronometer chrono=(Chronometer)findViewById(R.id.chronometer); chrono.start(); } } //.....

            GoodLuck

the answer is following to my question:

{
        int size=tempArray.length;

        for(int i=0;i<size;i++){
            Items.add(tempArray[i]);
}

and

            if(index==3)
            {
                final Dialog dialog=new Dialog(Starttracker.this);
                dialog.setContentView(R.layout.popup);
                dialog.setTitle("Enter The Item");
                dialog.setCanceledOnTouchOutside(true);

                final EditText filename=(EditText)dialog.findViewById(R.id.filename);
                filename.setText("");

                Button d_ok=(Button)dialog.findViewById(R.id.d_ok);
                Button d_cancel=(Button)dialog.findViewById(R.id.d_cancel);


                d_ok.setOnClickListener(new OnClickListener(){

                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub

                        String textHolder = filename.getText().toString();

                        dialog.dismiss();

                        Items.add(textHolder);

                        //  s1.setAdapter(adapter);

                        // notifyDataSetChanged();

                    }
                });
                d_cancel.setOnTouchListener(new OnTouchListener(){
                    public boolean onTouch(View v,MotionEvent me){
                        dialog.dismiss();
                        return false;
                    }
                });
                dialog.show();

                return;
            }

thank a lot to all

Shameless plug for my project.

Check out Android Popup Spinner View

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM