2012-04-22 3 views
0

Я отправил этот вопрос раньше, но я удалил его, потому что я собираюсь вставить больше кода.Ничего не происходит после PopUpWindow

Моя проблема: у меня есть PopupUpWindow при нажатии и появлении 2 кнопок. Итак, эти 2 кнопки имеют OnClick, но ничего не происходит. Я собираюсь вставить мой код:

 // PopupWindow de Exit 

    Button exit=(Button) findViewById(R.id.button1); 
    popUpView = getLayoutInflater().inflate(R.layout.estadisticaspopupwindowexit, null); 
    mpopup = new PopupWindow(popUpView, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, true); 


    exit.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      System.out.println("no clicked");//For checking that it's ok 
      mpopup.showAtLocation(popUpView, Gravity.BOTTOM, 0, 0); 
      // UNTIL HERE IT'S OK 
      View viewexit = (LinearLayout) factory.inflate(R.layout.estadisticaspopupwindowexit, null); 
      Button si=(Button) viewexit.findViewById(R.id.buttonyes); 
      Button no=(Button) viewexit.findViewById(R.id.buttonno); 

      // THESE ARE BUTTONS CALLED FROM ANOTHER XML FILE 

      si.setOnClickListener(new View.OnClickListener(){     
       @Override 
       public void onClick(View v) { 
        Intent intencion=new Intent(estadisticas.this, datosusuario.class); 
        startActivity(intencion); 
       } 


      }); 
      no.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v){ 
        mpopup.dismiss(); 
        System.out.println("no clicked"); 
// I'M WRITING THE LAST THING FOR CHECKING ON MY LOGCAST IF IT REALLY WORKS, BUT NOTHING HAPPENS 

       } 
      }); 


     } 

    }); 

Это все. Спасибо

ответ

0

Может быть, вы должны использовать

Button si=(Button) popUpView.findViewById(R.id.buttonyes); 
Button no=(Button) popUpView.findViewById(R.id.buttonno); 
+0

Hey duanhong169, большое спасибо. Я думаю, ты мог бы поверить, что я вроде СЛЕПЫЙ ... Я этого не видел .. Спасибо! =) –

0

Вы можете достичь того же результата с помощью AlertDialog.Builder. Вот пример кода, чтобы показать всплывающее окно с двумя кнопками:

public class UIHelper { 
    public static void createInformationalAlert(Context context, 
     DialogInterface.OnClickListener positiveButtononClickListener, 
     DialogInterface.OnClickListener negativeButtononClickListener, 
     String content, String positiveButtonCaption, 
     String negativeButtonCaption) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setMessage(content) 
      .setPositiveButton(positiveButtonCaption, 
        positiveButtononClickListener) 
      .setNegativeButton(negativeButtonCaption, negativeButtononClickListener); 
    AlertDialog alertDialog = builder.create(); 
    alertDialog.show(); 
} 
} 

Затем, чтобы показать всплывающее меню, используйте следующий код:

UIHelper.createInformationalAlert(this, 
      new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 
      }, new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 

       } 
      }, "Are you sure you want to exit?", "Yes", "No"); 

Если вы хотите накачать пользовательский вид, используйте setView(View)

+0

Hi Lev G. Спасибо за ваш ответ. Я не пробовал ваш ответ, потому что увидел вторую, которая изменила всего 2 слова, и это сработало, так или иначе спасибо :) –

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