Autore Topic: EditText vuota, valore = 0??  (Letto 714 volte)

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
EditText vuota, valore = 0??
« il: 21 Settembre 2015, 20:58:49 CEST »
0
Buona sera ragazzi,
sto lavorando ad un'app che risolva equazioni di secondo grado. Avrei un po' di domande, ma parto dal Layout:
Come da titolo vorrei impostare che se viene lasciata una edittext vuota essa assuma il valore 0. come posso fare?
Poi trasformare valori decimali in frazioni?? (scusate le domande stupide ma sono alle prime armi) :-)
Grazie mille a tutti

Offline auron567

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Windows 10
Re:EditText vuota, valore = 0??
« Risposta #1 il: 21 Settembre 2015, 21:39:04 CEST »
0
sono anch'io alle prime armi, qualcuno più esperto potrà darti una soluzione più raffinata, ma sul problema dell'edit text vuota puoi provare a risolvere così:

Codice: [Seleziona]
if(editText.getText().toString().equals(""))
{
     // imposti il valore a zero
}

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #2 il: 21 Settembre 2015, 21:59:22 CEST »
0
Okay grazie mille. Proverò il prima possibile. //

Aggiornamento (:D) : ho provato, ma non ho ottenuto risultati. Praticamente: io ho tre edittext che servono all'inserimento dei tre coefficienti dell'equazione.
Poi cliccando sul bottone calcola apro un'altra activity per mostrare risultati e delta. Uso tre variabili double per i coefficienti. prese dalle edit text con questi metodi:
            a = Double.parseDouble(A.getText().toString());
            b = Double.parseDouble(B.getText().toString());
            c = Double.parseDouble(C.getText().toString());

Codice: [Seleziona]
if(editText.getText().toString().equals(""))
{
     // imposti il valore a zero
}

Ho provato a modificare il codice che mi hai dato così tanto per provare:
      if (A.getText().toString() == ""){
                a = 0; }

ma niente.

idee? grazie mille





« Ultima modifica: 21 Settembre 2015, 23:07:22 CEST da MuSkinny »

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:EditText vuota, valore = 0??
« Risposta #3 il: 22 Settembre 2015, 09:40:22 CEST »
0
posta il layout dove sono presenti le 3 EditText

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #4 il: 22 Settembre 2015, 09:46:09 CEST »
0
posta il layout dove sono presenti le 3 EditText

<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/B" android:inputType="number|numberSigned" android:layout_gravity="center_horizontal" android:hint="Factor b" android:layout_weight="0.07" android:background="@drawable/edittxt" android:ellipsize="start" android:gravity="center|fill" android:numeric="signed|integer|decimal" android:layout_alignTop="@+id/A" android:layout_centerHorizontal="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/A" android:inputType="number|numberSigned|numberDecimal" android:hint="Factor a" android:background="@drawable/edittxt" android:layout_marginTop="56dp" android:numeric="signed|integer|decimal" android:gravity="center_vertical|center|fill" android:layout_below="@+id/textView2" android:layout_alignParentStart="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/C" android:inputType="number|numberSigned" android:layout_gravity="right" android:hint="Factor c" android:background="@drawable/edittxt" android:layout_alignTop="@+id/B" android:layout_toEndOf="@+id/button2" android:numeric="signed|integer|decimal" android:gravity="center_vertical|center|fill" />


Molte cose sono aggiunte abbastanza random. Ma sto imparando lentamente quindi



Inviato dal mio SM-G920F utilizzando Tapatalk


Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:EditText vuota, valore = 0??
« Risposta #5 il: 22 Settembre 2015, 10:05:59 CEST »
0
ora posta l'intero codice .... postalo usandolo gli opportuni tag perchè su quello di prima non si capisce nulla

Post unito: 22 Settembre 2015, 10:09:41 CEST
aspetta non serve
se hai fatto cosi
Codice (Java): [Seleziona]
  if (A.getText().toString() == ""){
                a = 0; }
è normale che non vada ... l'operando di confronto fra stringhe non è  ==
fai esattamente come proposto da auron567 e modifica in

Codice (Java): [Seleziona]
  if (  A.getText().toString().equals("")  ){
                a = 0; }

come puoi vedere per fare il confronto , si utilizza il metodo .equals("STRINGA DA CONFRONTARE") che fa parte della classe String
« Ultima modifica: 22 Settembre 2015, 10:09:41 CEST da pietroconti89, Reason: Merged DoublePost »

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #6 il: 22 Settembre 2015, 10:43:43 CEST »
0
.
« Ultima modifica: 22 Settembre 2015, 15:34:48 CEST da MuSkinny »

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #7 il: 22 Settembre 2015, 10:44:16 CEST »
0
Codice (XML): [Seleziona]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".Main"
   android:background="@drawable/sfondo">

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Solutions of a quadratic equation \n aX^2 + bX + c = 0"
       android:background="@drawable/texthead"
       android:textColor="#fff2f2ff"
       android:textSize="23dp"
       android:textStyle="bold|italic"
       android:id="@+id/textView2"
       android:textAlignment="center"
       android:typeface="serif"
       android:gravity="center" />

    <EditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/B"
       android:inputType="number|numberSigned"
       android:layout_gravity="center_horizontal"
       android:hint="Factor b"
       android:layout_weight="0.07"
       android:background="@drawable/edittxt"
       android:ellipsize="start"
       android:gravity="center|fill"
       android:numeric="signed|integer|decimal"
       android:layout_alignTop="@+id/A"
       android:layout_centerHorizontal="true" />

    <EditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/A"
       android:inputType="number|numberSigned|numberDecimal"
       android:hint="Factor a"
       android:background="@drawable/edittxt"
       android:layout_marginTop="56dp"
       android:numeric="signed|integer|decimal"
       android:gravity="center_vertical|center|fill"
       android:layout_below="@+id/textView2"
       android:layout_alignParentStart="true" />

    <EditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/C"
       android:inputType="number|numberSigned"
       android:layout_gravity="right"
       android:hint="Factor c"
       android:background="@drawable/edittxt"
       android:layout_alignTop="@+id/B"
       android:layout_toEndOf="@+id/button2"
       android:numeric="signed|integer|decimal"
       android:gravity="center_vertical|center|fill" />

    <Button
       android:layout_width="205dp"
       android:layout_height="wrap_content"
       android:text="Calc Solutions"
       android:id="@+id/button2"
       android:layout_gravity="center_horizontal"
       android:background="@drawable/ssfb"
       android:textSize="24dp"
       android:focusableInTouchMode="false"
       android:textColor="#fffef3ff"
       android:layout_centerVertical="true"
       android:layout_centerHorizontal="true"
       android:textStyle="italic" />

    <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Powered by M.F."
       android:id="@+id/MF"
       android:layout_alignParentBottom="true"
       android:layout_centerHorizontal="true" />

    <Button
       android:layout_width="205dp"
       android:layout_height="wrap_content"
       android:text="HOW CALCULATE"
       android:id="@+id/button"
       android:layout_marginTop="55dp"
       android:layout_below="@+id/button2"
       android:layout_toStartOf="@+id/C"
       android:background="@drawable/howbutton"
       android:textAlignment="center"
       android:textColor="#fff8f3ff"
       android:textSize="24dp"
       android:textStyle="italic" />

</RelativeLayout>


ecco qui. :)
« Ultima modifica: 22 Settembre 2015, 14:58:45 CEST da MuSkinny »

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #8 il: 22 Settembre 2015, 21:12:13 CEST »
0
ora posta l'intero codice .... postalo usandolo gli opportuni tag perchè su quello di prima non si capisce nulla

Post unito: 22 Settembre 2015, 10:09:41 CEST
aspetta non serve
se hai fatto cosi
Codice (Java): [Seleziona]
  if (A.getText().toString() == ""){
                a = 0; }
è normale che non vada ... l'operando di confronto fra stringhe non è  ==
fai esattamente come proposto da auron567 e modifica in

Codice (Java): [Seleziona]
  if (  A.getText().toString().equals("")  ){
                a = 0; }

come puoi vedere per fare il confronto , si utilizza il metodo .equals("STRINGA DA CONFRONTARE") che fa parte della classe String
Avevo provato ieri così, ma non ho ottenuto risultati.

Inviato dal mio SM-G920F utilizzando Tapatalk


Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:EditText vuota, valore = 0??
« Risposta #9 il: 22 Settembre 2015, 21:34:40 CEST »
0
Posta l intera parte java ...

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #10 il: 22 Settembre 2015, 21:42:19 CEST »
0
Posta l intera parte java ...

sono tre classi java per tre activity. posto l'activity del calcolo e quella della lettura dati:

Lettura dati

Codice (XML): [Seleziona]
public class Main extends ActionBarActivity {
    private EditText A;
    private EditText B;
    private EditText C;
    private Button button2;
    private Button button;
    public double a;
    public double b;
    public double c;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Scanning();
    }

    private void Scanning() {
        A = (EditText) findViewById(R.id.A);
        B = (EditText) findViewById(R.id.B);
        C = (EditText) findViewById(R.id.C);
        button2 = (Button) findViewById(R.id.button2);
        button = (Button) findViewById(R.id.button);

        button2.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View view) {
                ReadCheck();
                Createnewpage();
            }
        });
        button.setOnClickListener(new Button.OnClickListener()

        {
            public void onClick(View view) {
                CreateHoePage();

            }
        });
    }

    private void ReadCheck() {
        a = Double.parseDouble(A.getText().toString());
        b = Double.parseDouble(B.getText().toString());
        c = Double.parseDouble(C.getText().toString());
    }

    public void Createnewpage() {
        Intent nuovapagina = new Intent(Main.this, ResultActivity.class);
        nuovapagina.putExtra("a", a);
        nuovapagina.putExtra("b", b);
        nuovapagina.putExtra("c", c);
        startActivity(nuovapagina);
    }

    public void CreateHoePage() {
        Intent nuovapagina2 = new Intent(Main.this, How.class);
        startActivity(nuovapagina2);

    }
}

calcolo
Codice (XML): [Seleziona]
public class ResultActivity extends ActionBarActivity {
    private TextView X1;
    private TextView X2;
    private TextView DELTA;

    public double delta = 0;
    public double x1 = 0, x2 = 0;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.result);
        Scanning2();
        calcolodelta();
        calcoloxs();
    }

    private void Scanning2() {
    DELTA=(TextView)findViewById(R.id.DELTA);
    X1=(TextView)findViewById(R.id.X1);
    X2=(TextView)findViewById(R.id.X2);
}

    private void calcolodelta(){

        Bundle datipassati = this.getIntent().getExtras();
        double a = datipassati.getDouble("a");
        double b = datipassati.getDouble("b");
        double c = datipassati.getDouble("c");
        if ( a==0 && b==0 && c==0) {
           DELTA.setText("\nNo valid values entered \n ");
            X1.setText("X1 = No solution");
            X2.setText("X2 = No solution");
        } else if (a == 0) {
            DELTA.setText("\nFirst degree Equation, just one solution \n ");
            x1 = (-c) / b;
            X1.setText("X1 = " +x1);
            X2.setText(" ");

        }
        else {
            delta = b * b - (4 * (a * c));
            DELTA.setText("\nDelta = " + delta);
        }
    }

    private void calcoloxs() {
        Bundle datipassati = this.getIntent().getExtras();
        double a = datipassati.getDouble("a");
        double b = datipassati.getDouble("b");
        if (delta < 0) {
           DELTA.setText("\nDelta " + delta + "< 0 \nNon ci sono soluzioni");
           X1.setText("NO SOLUTION");
           X2.setText(" ");
       } else if ((delta == 0) && (a != 0)) {
           DELTA.setText("Delta " + delta + "= 0 \nUna soluzione");
           x1 = (-b + Math.sqrt(delta)) / (2 * a);
           X1.setText("X = " + x1);
           X2.setText(" ");
       } else if (delta > 0) {
            x1 = (-b + Math.sqrt(delta)) / (2 * a);
            X1.setText("X1 = " + x1);
            x2 = (-b - Math.sqrt(delta)) / (2 * a);
            X2.setText("X2 = " + x2);
        }
    }
}

la terza è teoria matematica.
Sto lavorando a miglioraarlo il più pèossibile quindi molte cose sono ripetute (rindondanze) e forse acìnche sbagliate. :)

« Ultima modifica: 23 Settembre 2015, 19:18:27 CEST da MuSkinny »

Offline pietroconti89

  • Utente normale
  • ***
  • Post: 164
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note 3 N9005
  • Sistema operativo:
    Windows / Mac OSX
Re:EditText vuota, valore = 0??
« Risposta #11 il: 23 Settembre 2015, 23:27:00 CEST »
0
in questo punto
Codice (Java): [Seleziona]
private void ReadCheck() {
        a = Double.parseDouble(A.getText().toString());
        b = Double.parseDouble(B.getText().toString());
        c = Double.parseDouble(C.getText().toString());
    }

sostituisci con

Codice (Java): [Seleziona]
private void ReadCheck()
if (A.getText().toString().equals(""))  
            a=0;
        else
            a=Double.valueOf(A.getText().toString());
       
        if (B.getText().toString().equals(""))
            b=0;
        else
            b=Double.valueOf(B.getText().toString());
       
        if (C.getText().toString().equals(""))
            c=0;
        else
            c=Double.valueOf(C.getText().toString());
    }

Offline MuSkinny

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s 6 black - 64gb; Nexus 5 32gb
  • Sistema operativo:
    OS x; windows 10
Re:EditText vuota, valore = 0??
« Risposta #12 il: 23 Settembre 2015, 23:30:31 CEST »
0
in questo punto
Codice (Java): [Seleziona]
private void ReadCheck() {
        a = Double.parseDouble(A.getText().toString());
        b = Double.parseDouble(B.getText().toString());
        c = Double.parseDouble(C.getText().toString());
    }

sostituisci con

Codice (Java): [Seleziona]
private void ReadCheck()
if (A.getText().toString().equals(""))  
            a=0;
        else
            a=Double.valueOf(A.getText().toString());
       
        if (B.getText().toString().equals(""))
            b=0;
        else
            b=Double.valueOf(B.getText().toString());
       
        if (C.getText().toString().equals(""))
            c=0;
        else
            c=Double.valueOf(C.getText().toString());
    }

okay. ora provo grazie mille pietro :)

Aggiornamento: funziona proprio come volevo. Grazie mille pietro e grazie a tutti ragazzi! :)
« Ultima modifica: 23 Settembre 2015, 23:38:32 CEST da MuSkinny »