2015-01-18 1 views
1

У меня есть слушатель для определенного элемента в моем адаптере. Когда я нажимаю на нее, я хочу показать диалог. Моя проблема в том, что я не могу получить свой диалог «builder.setPositiveButton (« Отмена », новый deleteRow()); работать. Я никогда не смогу найти его, чтобы найти какие-либо из моих функций. Как я могу запустить мой диалог?Диалог android не может финансировать функцию setPositiveButton()

В моем фрагменте

public void getSavedVideos() { 
     mydb = new MySQLiteHelper(getActivity()); 
     listView.setEmptyView(rootview.findViewById(R.id.noSavedVideosTextView)); 

     //Get IDs of all rows in the db 
     ArrayList savedVideoIDs = mydb.getAllSavedVideo(); 

     mSavedVideoAdapter = new SavedVideoAdapter(getActivity(), savedVideoIDs, mydb); 
     listView.setAdapter(mSavedVideoAdapter); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

       View cancel = view.findViewById(R.id.x); 
       cancel.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         getActivity().showDialog(DIALOG_ALERT); 
        } 
       }); 

       Intent myIntent = new Intent(getActivity(), UploadVideoActivity.class); 
       startActivity(myIntent); 
      } 
      @Override 
      protected Dialog onCreateDialog(int id) { 
       switch (id) { 
        case DIALOG_ALERT: 
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getApplicationContext()); 
         builder.setTitle("Remove Video"); 
         builder.setMessage("hkjh."); 
         builder.setCancelable(true); 
         builder.setPositiveButton("Cancel", new CancelOnClickListener()); 
         builder.setNegativeButton("Remove", new deleteRow()); 
         AlertDialog dialog = builder.create(); 
         dialog.show(); 
       } 
       return onCreateDialog(id); 
      } 

     }); 


    } 
    public void deleteRow() { 

    } 

ответ

0

изменить это:

builder.setNegativeButton("Remove", new deleteRow()); 

к этому:

ad.setPositiveButton("Buy",new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        //do everi ting you want 
       } 
      }); 

это работает

здесь диалог образца с действием:

AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this); 
      ad.setTitle("PRO_VISION"); 
      ad.setMessage("for use Settings you must buy pro_vision only pro user can use this"); 
      ad.setPositiveButton("Buy",new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        Intent is = new Intent(MainActivity.this,MainActivity4.class); 
        startActivityForResult(is,12); 
       } 
      }); 
      ad.setNegativeButton("cancel",null); 
      ad.show(); 

использовать это на OnCreate в некотором виде setOnClickListener она должна быть работой

+0

Это, кажется, работает. Теперь я вижу, что onCreateDialog() никогда не вызывается. Есть идеи? – kinezu

+0

dont построить диалог в oncreatedialog использовать свой код в oncreate и использовать clickListener для построения диалога, если вы хотите построить диалог в onCreatedialog, вы должны использовать FragmentActivity – user3427196

Смежные вопросы