title: how to confirm quit application in fragment ? when user press back key
body: <p>i am creating an applicaiton with different fragments. I want to add code to listener for  back key event and confirm with user if he wants to exit the app or not.. </p>
  
  <pre><code>public class FastivalesFragment extends Fragment {
  
  public FastivalesFragment(){
  
      }
      CustomAdapter adapter;
      List&lt;EventClass&gt; tempRows = new ArrayList&lt;EventClass&gt;();
      EditText searchTxt;
  
  
      ListView list;
      View view;
       @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                  Bundle savedInstanceState) {
           Log.d("LifeCycle now is", "onCreateView");
  
  
  
          // searchTxt = (EditText)view.findViewById(R.id.inputSearch);
  
  
           tempRows.clear(); // to delete all objects form temp array
  
            view = inflater.inflate(R.layout.events_list, container, false);
  
            list = (ListView) view.findViewById(R.id.listView1);
            int j=0;
            while (AllEventsFragment.rowItems.size() &gt; j){
  
                Log.d(" the value for region ", "is "+ AllEventsFragment.rowItems.get(j).getCategory());
  
                if (AllEventsFragment.rowItems.get(j).getCategory().equals("أخرى")) {
                    tempRows.add(AllEventsFragment.rowItems.get(j));
                }
  
                j++;
            }
                adapter = new CustomAdapter(getActivity(),R.layout.item_view,tempRows);
                list.setAdapter(adapter);
  
  
  
              //list.setTextFilterEnabled(true);
                  list.setOnItemClickListener(new OnItemClickListener() {
  
  
                      @Override
                      public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1,
                              int arg2, long arg3) {
                          //Log.e("value of name ", " "+ arg2);
  
                          String name = tempRows.get(arg2).getName();
                          String details = tempRows.get(arg2).getDetails();
  
                          String ticketPrice = tempRows.get(arg2).getTicketPrice();
                          String boolingUrl = tempRows.get(arg2).getBookingUrl();
  
  
  
                        Log.e("sdate", " "+ sdate);
  
  
                          Intent i = new Intent (getActivity(), Event_details.class);
                          i.putExtra("name", name);
                          i.putExtra("details", details);
                          i.putExtra("sdate", sdate);
                          i.putExtra("edate", edate);
                          i.putExtra("time", time);
  
                          i.putExtra("boolingUrl", boolingUrl);
  
  
  
  
                          startActivity(i);
  
  
  
  
                          //Toast.makeText(MainActivity.this,"test",Toast.LENGTH_SHORT).show();
                          //Log.e("position"," "+ arg2);
  
                      }
                  });
  
  
  
  
           return view;
  
          }
  
  
  
  
      //onCreate method
       @Override
       public void onCreate (Bundle savedInstanceState){
           super.onCreate(savedInstanceState);
  
  
           Log.d("LifeCycle now is", "onCreate");
       } // end of Attach
  
      //onPause() method
           @Override
           public void onPause(){
               super.onPause();
                  //rowItems.clear(); // to delete all objects form temp array
  
               Log.d("LifeCycle now is", "onPause()");
           } // end of onPause
      //onResume() method
           @Override
           public void onResume(){
               super.onResume();
  
               Log.d("LifeCycle now is", "onResume()");
           } // end of onResume      
  
  
  
  }
  </code></pre>
  
  <p>I used the following code for activity and it works fine.. but it does not work the fragment file above.</p>
  
  <pre><code>    // confirm when user click back key
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode != KeyEvent.KEYCODE_BACK)  return super.onKeyDown(keyCode, event);
  
          DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
  
          public void onClick(DialogInterface dialog, int which) {
              switch (which){
              case DialogInterface.BUTTON_POSITIVE:
                  //Yes button clicked
                 finish();
                  break;
  
              case DialogInterface.BUTTON_NEGATIVE:
                  //No button clicked
                  break;
              }
          }
      };
  
      AlertDialog.Builder builder = new AlertDialog.Builder(this)
      .setMessage("Are you sure?")
      .setPositiveButton("Yes", dialogClickListener)
       .setNegativeButton("No", dialogClickListener)
       .setCancelable(false)
       .setTitle("Exit");
       builder.show();
  
      return super.onKeyDown(keyCode, event);
  }
  </code></pre>
  
  <p>when i copy this code the above fragment .. i got error of : The method onKeyDown is undefiled for type  Fragment..</p>