CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: carotix con ben 19 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 13
Discussione:

Gestire una Activity tramite le dialogs

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Gestire una Activity tramite le dialogs

    Ciao a tutti,

    mi chiedevo se qualcuno di voi sà come è possibile gestire una nuova activity tramite una new Dialog. La dialog viene visualizzata dopo aver cliccato su un Button. In questa dialog vorrei settare 2 EditText per effettuare il match dei caratteri inseriti (TextView per stringa "Password", EditText per input Type "TextPassword", TextView per stringa "Inserisce nuovamente password", EditText per controllo caratteri inseriti).

    Questo è l'xml.

    x
     
    1
    <?xml version="1.0" encoding="utf-8"?>
    2
    <LinearLayout
    3
      xmlns:android="http://schemas.android.com/apk/res/android"
    4
      android:layout_width="wrap_content"
    5
      android:layout_height="wrap_content" android:background="@drawable/background" android:orientation="vertical">
    6
      <activity android:theme="@android:style/Theme.Dialog">
    7
      </activity>
    8
    9
    <TextView android:layout_width="wrap_content"
    10
    android:layout_height="wrap_content" android:id="@+id/Dialog_password" 
    11
    android:text="@string/password"></TextView>
    12
    <EditText android:layout_width="wrap_content"
    13
    android:layout_height="wrap_content" 
    14
    android:inputType="textPassword" android:id="@+id/EditText_Pwd1"></EditText>
    15
    <TextView android:layout_width="wrap_content" 
    16
    android:layout_height="wrap_content"
    17
     android:id="@+id/Dialog_passwordmatch" 
    18
     android:text="@string/password_match"></TextView>
    19
    <EditText android:layout_width="wrap_content" 
    20
    android:layout_height="wrap_content" 
    21
    android:id="@+id/EditText_Pwd2" android:inputType="textPassword"></EditText>
    22
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/TextView_PwdProblem"></TextView>
    23
    </LinearLayout>


    Ed ecco il codice java

    46
     
    1
    2
    package com.android.quizzle;
    3
    4
    5
    6
    import android.app.Activity;
    7
    import android.app.AlertDialog;
    8
    import android.app.Dialog;
    9
    import android.content.DialogInterface;
    10
    import android.content.Intent;
    11
    import android.os.Bundle;
    12
    import android.view.KeyEvent;
    13
    import android.view.View;
    14
    import android.view.View.OnClickListener;
    15
    import android.widget.Button;
    16
    import android.widget.EditText;
    17
    import android.widget.TextView;
    18
    19
    public class SettingsActivity extends Activity {
    20
        /** Called when the activity is first created. */
    21
        @Override
    22
        public void onCreate(Bundle savedInstanceState)
    23
        {
    24
            super.onCreate(savedInstanceState);
    25
            setContentView(R.layout.settings);
    26
            Button alert = (Button) findViewById(R.id.Button_password);
    27
            alert.setOnClickListener(new OnClickListener() {
    28
                @Override
    29
                public void onClick(View view) {
    30
                    if (view == findViewById(R.id.Button_password)) {
    31
                        Dialog dialog = new Dialog(SettingsActivity.this);
    32
                        dialog.setTitle("Set password:");
    33
                        dialog.setContentView(R.layout.password);
    34
                        dialog.setCancelable(true);
    35
                        TextView text = (TextView) dialog.findViewById(R.id.TextView01);
    36
                        text.setText(R.string.password);
    37
                        dialog.setTitle("Set Password:");
    38
                        dialog.setCancelable(true);
    39
                        
    40
                        finish();
    41
                        dialog.show();
    42
                }
    43
                    
    44
            }
    45
                
    46
            });


    Il PROBLEMA è che come potete vedere quello che faccio una volta cliccato sul button è una redirect della pagina in cui mi trovo (SettingsActivity). Vorrei poter effettuare uno "switch" ad un'altra classe chiamata CheckPassword.java.

    Spero di essere stato chiaro. Grazie per la vostra disponibilità.

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    A parte un bel "Up" per questo post, stavo pensando in questo modo:
    Visto che non devo far altro che attivare una nuova finestra Dialog per gestire gli user input, ho pensato di rendere da prima invisibili gli EditText e successivamente (dopo il click sul button "Password") renderli visibili.

    33
     
    1
    2
    package com.android.quizzle;
    3
    4
    5
    6
    import android.app.Activity;
    7
    8
    9
    import android.os.Bundle;
    10
    import android.view.KeyEvent;
    11
    import android.view.View;
    12
    import android.view.View.OnClickListener;
    13
    import android.widget.Button;
    14
    import android.widget.EditText;
    15
    16
    17
    public class SettingsActivity extends Activity {
    18
        /** Called when the activity is first created. */
    19
        @Override
    20
        public void onCreate(Bundle savedInstanceState)
    21
        {
    22
            super.onCreate(savedInstanceState);
    23
            setContentView(R.layout.settings);
    24
            Button alert = (Button) findViewById(R.id.Button_password);
    25
            alert.setOnClickListener(new OnClickListener() {
    26
                
    27
                @Override
    28
                public void onClick(View view) {
    29
                        Button b = (Button) findViewById(R.id.EditText_Pwd1);
    30
                        b.setVisibility(View.VISIBLE);
    31
                            }});
    32
    33



    Appena clicco sul bottone password, l'app va in crash!!!! Cosa sbaglio secondo voi?

  4. #3
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    se è un EditText perchè fai il cast a Button?

    osserva l'output su LogCat e se poi non ne vieni a capo incolla anche quello

  5. Il seguente Utente ha ringraziato Jordano per il post:

    Anular (12-04-11)

  6. #4
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    A parte la niubbata mostruosa che ho fatto, non è possibile gestire questa situazione con le dialog?

  7. #5
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    ti serve una cosa così?
    Immagini allegate

  8. #6
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Esatto!!!!

  9. #7
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    la trovi negli esempi, scopiazza da li.

    in eclipse fai new project, create project from existing samples e poi trovi ApiDemos...

    poi dentro al progetto c'hai tipo una gerarchia di esempi, devi andare in App/Dialog e lo trovi.

    ora non ho eclipse sottomano quindi non saprei dirti di preciso, ma lo trovi sicuro

  10. #8
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Ok, l'ho trovato.

    57
     
    1
    2
    /*
    3
     * Copyright (C) 2008 The Android Open Source Project
    4
     *
    5
     * Licensed under the Apache License, Version 2.0 (the "License");
    6
     * you may not use this file except in compliance with the License.
    7
     * You may obtain a copy of the License at
    8
     *
    9
     *      http://www.apache.org/licenses/LICENSE-2.0
    10
     *
    11
     * Unless required by applicable law or agreed to in writing, software
    12
     * distributed under the License is distributed on an "AS IS" BASIS,
    13
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14
     * See the License for the specific language governing permissions and
    15
     * limitations under the License.
    16
     */
    17
    18
    package com.example.android.apis.app;
    19
    20
    // Need the following import to get access to the app resources, since this
    21
    // class is in a sub-package.
    22
    import android.app.Activity;
    23
    import android.os.Bundle;
    24
    import android.view.Window;
    25
    26
    import com.example.android.apis.R;
    27
    28
    /**
    29
     * <h3>Dialog Activity</h3>
    30
     * 
    31
     * <p>This demonstrates the how to write an activity that looks like 
    32
     * a pop-up dialog.</p>
    33
     */
    34
    public class DialogActivity extends Activity {
    35
        /**
    36
         * Initialization of the Activity after it is first created.  Must at least
    37
         * call {@link android.app.Activity#setContentView setContentView()} to
    38
         * describe what is to be displayed in the screen.
    39
         */
    40
        @Override
    41
        protected void onCreate(Bundle savedInstanceState) {
    42
            // Be sure to call the super class.
    43
            super.onCreate(savedInstanceState);
    44
            
    45
            requestWindowFeature(Window.FEATURE_LEFT_ICON);
    46
            
    47
            // See assets/res/any/layout/dialog_activity.xml for this
    48
            // view layout definition, which is being set here as
    49
            // the content of our screen.
    50
            setContentView(R.layout.dialog_activity);
    51
            
    52
            getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, 
    53
                    android.R.drawable.ic_dialog_alert);
    54
        }
    55
    }
    56
    57


    Ma non credo che è la jpg che hai postato tu. A me interessa esattamente quella finestra li.

  11. #9
    Androidiano L'avatar di Jordano


    Registrato dal
    Nov 2010
    Località
    Reggio Emilia
    Messaggi
    263
    Smartphone
    Nexus S / HTC Magic 32a

    Ringraziamenti
    1
    Ringraziato 48 volte in 46 Posts
    Predefinito

    AlertDialogSamples.java

  12. #10
    Baby Droid


    Registrato dal
    Mar 2011
    Messaggi
    28

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    Ok, ora riesco a visualizzare un AlertDialog con un titolo "Password". L'unica cosa che vorrei aggiungere adesso sono le due EditText per effettuare il match delle password. Sto provando ad inserirle sia nel case che nell'onClick ma non riesco a visualizzarle. Spulciando nel file AlertDialog, ho notato il metodo textEntry ma non credo faccia al mio caso.

    Secondo te, dove devo metterle?

    64
     
    1
    package com.android.quizzle;
    2
    3
    import android.app.Activity;
    4
    import android.app.AlertDialog;
    5
    import android.app.Dialog;
    6
    import android.content.DialogInterface;
    7
    import android.os.Bundle;
    8
    import android.view.KeyEvent;
    9
    import android.view.View;
    10
    import android.view.View.OnClickListener;
    11
    import android.widget.Button;
    12
    import android.widget.EditText;
    13
    import android.widget.TextView;
    14
    15
    16
    public class SettingsActivity extends Activity {
    17
        /** Called when the activity is first created. */
    18
        private static final int Password_Dialog = 1;
    19
        //preloading dialog
    20
        @Override
    21
        protected Dialog onCreateDialog(int id) {
    22
            
    23
            switch (id) {
    24
            case Password_Dialog:
    25
                final EditText p1 = (EditText) findViewById(R.id.EditText_Pwd1);
    26
                final EditText p2 = (EditText) findViewById(R.id.EditText_Pwd2);
    27
                final TextView error = (TextView) findViewById(R.id.TextView_PwdProblem);
    28
                
    29
                return new AlertDialog.Builder(SettingsActivity.this)
    30
                    
    31
                    .setTitle(R.string.password)
    32
                    
    33
                    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
    34
                        public void onClick(DialogInterface dialog, int whichButton) {
    35
    36
                            /* User clicked OK so do some stuff */
    37
                        }
    38
                    })
    39
                    .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
    40
                        public void onClick(DialogInterface dialog, int whichButton) {
    41
    42
                            /* User clicked Cancel so do some stuff */
    43
                        }
    44
                    })
    45
                    .create();
    46
            }
    47
            return null;}
    48
        public void onCreate(Bundle savedInstanceState)
    49
        {
    50
            super.onCreate(savedInstanceState);
    51
            setContentView(R.layout.settings);
    52
            Button alert = (Button) findViewById(R.id.Button_password);
    53
            alert.setOnClickListener(new OnClickListener() {
    54
                
    55
                @Override
    56
                public void onClick(View view) {
    57
                    
    58
                    showDialog(Password_Dialog);
    59
                    final EditText p1 = (EditText) findViewById(R.id.EditText_Pwd1);
    60
                    final EditText p2 = (EditText) findViewById(R.id.EditText_Pwd2);
    61
                    final TextView error = (TextView) findViewById(R.id.TextView_PwdProblem);
    62
                            }});
    63
    64
            

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy