从所选的选项中触发单击侦听器上的设置

时间:2015-08-29 10:14:22

标签: java android

我想从所选的选项中触发设置点击监听器...

这是我在选项上选择的代码

//cancel event added here
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        // ClipData.Item menu_cancel_event=(ClipData.Item)  findViewById(R.id.menu_cancel_event);
        // int Id = item.getItemId();
        switch (item.getItemId()) {
            case R.id.menu_cancel_event:
                eventMO.setIsDelete(1);
                del();
                return true;
    }

        return super.onOptionsItemSelected(item);
    }

    private void del() {

        SQLiteDatabase db = dbHelper.getWritableDatabase();
        final long Id = eventMO.getEventId();
        db.delete("event", "Event_ID" + " = ?", new String[]{String.valueOf(Id)});
        db.close();
    }

这是我在点击监听器上的设置

btn_create_button = (Button) findViewById(R.id.create_button);
 btn_create_button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // Instantiate Progress Dialog object
                prgDialog = new ProgressDialog(OccasionActivity.this);
                // Set Progress Dialog Text
                prgDialog.setMessage("Please wait...");
                // Set Cancelable as False
                prgDialog.setCancelable(false);

                prgDialog.show();
                UserMO userMO = dbHelper.getRingeeUserData(1);
                eventMO.setText(custom_Text.getText().toString());
                eventMO.setPlace(event_Place.getText().toString());
                eventMO.setEndTime(end_Time);
                eventMO.setStartTime(start_Time);

                try {
                    //date and time format changed here
                    String eventDate = btn_Date.getText().toString();
                    DateFormat date = new SimpleDateFormat("dd-M-yyyy");
                    Date date1 = date.parse(eventDate);
                    DateFormat convertDate = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss");
                    eventDate = convertDate.format(date1);
                    eventMO.setEventDate(eventDate);

                } catch (ParseException e) {

                    e.printStackTrace();
                }
                //eventMO.setEventDate(btn_Date.getText().toString());

                eventMO.setRingeeUserId(userMO.getRingeeUserId());
                //event update functionality added here


                final Long hidden_Text2 = eventId2;
                if ((eventMO.getText() != null) && (eventMO.getPlace() != null) && (eventMO.getEventDate() != null)) {
                    if (hidden_Text2 != null) {
                        eventMO.setEventId(hidden_Text2);
                        new AsyncTask<Void, Void, String>() {
                            @Override
                            protected String doInBackground(Void... arg0) {
                                return eventDelegates.updateEvent(eventMO, context);
                            }

                            @Override
                            protected void onPostExecute(String arg0) {
                                prgDialog.dismiss();
                                Intent contactAct = new Intent(getApplicationContext(), UserDashBoardActivity.class);
                                // Clears History of Activity
                                contactAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(contactAct);

                            }

                        }.execute(null, null, null);
                        Toast.makeText(getApplicationContext(), "Details updated successfully", Toast.LENGTH_LONG).show();

我想从选择的项目项目中触发点击监听器上的设置.....如何调用此...请帮我查找

我的代码

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_occasion, menu);
        return true;
    }

    //cancel event added here
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        // ClipData.Item menu_cancel_event=(ClipData.Item)  findViewById(R.id.menu_cancel_event);
        // int Id = item.getItemId();
        switch (item.getItemId()) {
            case R.id.menu_cancel_event:
                eventMO.setIsDelete(1);
                del();

                //doOnCLickAndOnOptionSelected();
                return true;
    }

        return super.onOptionsItemSelected(item);
    }

    private void del() {

        SQLiteDatabase db = dbHelper.getWritableDatabase();
        final long Id = eventMO.getEventId();
        db.delete("event", "Event_ID" + " = ?", new String[]{String.valueOf(Id)});
        db.close();
    }


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

        context = getApplicationContext();
        seekBar_startTime = (SeekBar) findViewById(R.id.seekBar1);
        textView_startTime = (TextView) findViewById(R.id.textView1);
        seekBar_endTime = (SeekBar) findViewById(R.id.seekBar2);
        textView_endTime = (TextView) findViewById(R.id.textView2);
        btn_Date = (Button) findViewById(R.id.event_date_button);
        event_Place = (TextView) findViewById(R.id.Enter_Place);
        custom_Text = (TextView) findViewById(R.id.Custom_Text);
        btn_create_button = (Button) findViewById(R.id.create_button);
        //menu_cancel_event=(button) findViewId(R.id.menu_cancel_event);

        /*box1=(CheckBox) findViewById(R.id.check_box1);
        box2=(CheckBox) findViewById(R.id.check_box2);
        box3=(CheckBox) findViewById(R.id.check_box3);*/
        sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME, Context.MODE_PRIVATE);
        dbHelper = new DatabaseHelper(context);

        btn_Date.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                DatePickerFragment newFragment = new DatePickerFragment();
                newFragment.show(getFragmentManager(), "Occasion Date");

            }
        });

        seekBar_startTime.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
                start_Time = String.valueOf(progresValue);
                textView_startTime.setText("Event Start Time :" + progresValue);
            }
        });

        seekBar_endTime.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }

            @Override
            public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
                end_Time = String.valueOf(progresValue);
                textView_endTime.setText("Event End Time :" + progresValue);
            }
        });

        //eventid get from OccasionFragment here
        Bundle bundle = this.getIntent().getExtras();
        if (bundle != null) {

            Long eventId1 = bundle.getLong("EventID");
            eventId2 = eventId1;
            String eventName = bundle.getString("EventName");
            custom_Text.setText(eventName);
            String eventPlace = bundle.getString("EventPlace");
            event_Place.setText(eventPlace);
            String eventDate = bundle.getString("EventDate");
            try {
                //String eventDate = bundle.getString("EventDate");
                //time string removed from date here
                String result = eventDate.split(" ")[0];
                DateFormat sourceDate = new SimpleDateFormat("yyyy-MM-dd");
                // parse the date string into Date object
                Date date = sourceDate.parse(result);
                DateFormat convertDate = new SimpleDateFormat("dd-M-yyyy");
                // format the date into another format
                result = convertDate.format(date);
                btn_Date.setText(result);


            } catch (ParseException e) {

                e.printStackTrace();
            }
            //Event Start Time and Event End Time string added before the time here
            String eventStart = bundle.getString("EventStart");
            textView_startTime.setText("Event Start Time :" + eventStart);
            String eventEnd = bundle.getString("EventEnd");
            textView_endTime.setText("Event End Time :" + eventEnd);

        }

        btn_create_button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // Instantiate Progress Dialog object
                 //doOnCLickAndOnOptionSelected();
                    // code

                    prgDialog = new ProgressDialog(OccasionActivity.this);
                    // Set Progress Dialog Text
                    prgDialog.setMessage("Please wait...");
                    // Set Cancelable as False
                    prgDialog.setCancelable(false);

                    prgDialog.show();
                    UserMO userMO = dbHelper.getRingeeUserData(1);
                    eventMO.setText(custom_Text.getText().toString());
                    eventMO.setPlace(event_Place.getText().toString());
                    eventMO.setEndTime(end_Time);
                    eventMO.setStartTime(start_Time);

                try {
                    //date and time format changed here
                    String eventDate = btn_Date.getText().toString();
                    DateFormat date = new SimpleDateFormat("dd-M-yyyy");
                    Date date1 = date.parse(eventDate);
                    DateFormat convertDate = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss");
                    eventDate = convertDate.format(date1);
                    eventMO.setEventDate(eventDate);

                } catch (ParseException e) {

                    e.printStackTrace();
                }
                //eventMO.setEventDate(btn_Date.getText().toString());

                eventMO.setRingeeUserId(userMO.getRingeeUserId());
                //event update functionality added here


                final Long hidden_Text2 = eventId2;
                if ((eventMO.getText() != null) && (eventMO.getPlace() != null) && (eventMO.getEventDate() != null)) {
                    if (hidden_Text2 != null) {
                        eventMO.setEventId(hidden_Text2);
                        new AsyncTask<Void, Void, String>() {
                            @Override
                            protected String doInBackground(Void... arg0) {
                                return eventDelegates.updateEvent(eventMO, context);
                            }

                            @Override
                            protected void onPostExecute(String arg0) {
                                prgDialog.dismiss();
                                Intent contactAct = new Intent(getApplicationContext(), UserDashBoardActivity.class);
                                // Clears History of Activity
                                contactAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(contactAct);

                            }

                        }.execute(null, null, null);
                        Toast.makeText(getApplicationContext(), "Details updated successfully", Toast.LENGTH_LONG).show();

                    } else {

                        new AsyncTask<Void, Void, String>() {
                            @Override
                            protected String doInBackground(Void... arg0) {
                                return eventDelegates.addEvent(eventMO, context);
                            }

                            @Override
                            protected void onPostExecute(String eventId) {
                                prgDialog.dismiss();
                                SharedPreferences.Editor editor = sharedpreferences.edit();
                                editor.putString("eventId", eventId);
                                editor.commit();
                                Intent contactAct = new Intent(getApplicationContext(), ContactActivity.class);
                                // Clears History of Activity
                                contactAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(contactAct);
                            }
                        }.execute(null, null, null);
                        Toast.makeText(getApplicationContext(), "Details added successfully", Toast.LENGTH_LONG).show();

                    }
                } else {
                    prgDialog.dismiss();
                    Toast.makeText(context, "Please check Event custom text or Event place or Event date field", Toast.LENGTH_LONG).show();
                }


            }
        });

    }

    @SuppressLint("ValidFragment")
    public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current date as the default date in the picker
            final Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);

            // Create a new instance of DatePickerDialog and return it
            return new DatePickerDialog(getActivity(), this, year, month, day);
        }

        public void onDateSet(DatePicker view, int year, int month, int day) {
            Date = new StringBuilder().append(year).append("-").append(month + 1).append("-").append(day).append(" ").toString();
            btn_Date.setText(new StringBuilder().append(day).append("-").append(month + 1).append("-").append(year).append(" ").toString());
        }
    }

}

1 个答案:

答案 0 :(得分:2)

通常,不会以编程方式调用android侦听器回调。这会在以后引起各种混乱。

因此,如果您希望在两个侦听器回调中运行代码,则可以在与两个回调(Activity或Fragment)相同的范围内创建一个方法。然后在你的回叫中你称之为该方法。

活动的示例:

class MyActivity extends Activity {
    private void doOnCLickAndOnOptionSelected() {
       // code
    }

    @Override
    protected void onCreate(...) {

        ...

        btn_create_button = (Button) findViewById(R.id.create_button);
        btn_create_button.setOnClickListener(new View.OnClickListener() {
           @Override
            public void onClick(View v) {
                doOnCLickAndOnOptionSelected();
            }
        }

        ...

        someMenu.setOnOpttionsItemSelectedListener(new OnOpttionsItemSelectedListener {
            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                // ClipData.Item menu_cancel_event=(ClipData.Item)  findViewById(R.id.menu_cancel_event);
                // int Id = item.getItemId();
                switch (item.getItemId()) {
                    case R.id.menu_cancel_event:
                    eventMO.setIsDelete(1);
                    del();
                    doOnCLickAndOnOptionSelected();
                    return true; 
                }

                return super.onOptionsItemSelected(item);
            }
        }
    }
}