В Android, как мне создать всплывающее окно и отправить данные на главный экран? - PullRequest
0 голосов
/ 22 ноября 2011

Я создал Main.xml с кнопками.Все они выполняют определенное действие, и это нормально, но также должны быть кнопки, защищенные паролем.Поэтому я также создал второй xml (popup.xml).Это должно появиться, если пользователь нажимает кнопку.В popup.xml есть только текстовое поле для ввода пользователя и кнопка для отправки.

В данный момент я могу нажать на кнопку, и появляется всплывающее окно, но я не знаю, как отправить ввод пользователяданные на главном экране или просто вернитесь к основному виду, нажав кнопку.

public class BastiLauncherActivity extends Activity implements OnClickListener {

    private Button b1;    
    // ...

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // this b1 is a button in the main view where this pop up should appear
        b1 = (Button) findViewById(R.id.b1Button);
        b1.setOnClickListener(this);
        // ...
    }

    @Override
    public void onClick(View v) {
        LayoutInflater inflater =
                (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        PopupWindow pw = new PopupWindow(inflater.inflate(R.layout.popup, null,
                false), 200, 300, true);
        pw.setOutsideTouchable(true);

        if (v == b1) {
            // opening the popup
            pw.showAtLocation(findViewById(R.id.dateiButton), Gravity.CENTER, 0, 0);

        } else if (...) {

        }
    }
}

1 Ответ

4 голосов
/ 22 ноября 2011

Я вижу, что вы используете PopupWindow - чтобы удалить его, вы вызываете dismiss().

Если вы просто хотите, чтобы всплывающее окно захватывало пользовательский ввод, вернитесь к действию, которое породило всплывающее окно.тогда я бы предложил использовать пользовательский диалог.Вы можете создавать все что угодно в диалоговом окне и добавлять любые нужные вам кнопки с обработчиками для каждой кнопки.Пример;

new AlertDialog.Builder(Main.this)
               .setTitle("Enter password")
               .setMessage("Password required for this function")
               .setView(/* You view layout */)
               .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int whichButton) {
                       Editable value = input.getText(); 
                   }
               }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int whichButton) {
                       // Do nothing.
                   }
               }).show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...