Po wciśnięciu przycisku nic się nie dzieje - dlaczego?

0

Cześć!

Jestem początkującym programistą Javy na androida. Szukałem w necie mnóstwo razy, ale nic nie znalazłem. Moja aplikacja, ma liczyć proporcje. Robić taką popularną krzyżówkę. Ma zidentyfikować w którym polu jest wpisany "x" (na razie kod dla tylko jednego takiego miejsca) i liczyć na krzyż tak jak normalne proporcje. Jestem również programistą w C# i tam napisałem już taką aplikację (na takich samych zasadach) tyle że na komputer. Czy ktoś mógłby zerknąć na mój kod i powiedzieć mi dlaczego, po wciśnięciu przycisku nie dzieje się absolutnie nic :(?

MainActivity.java

package com.apk.andrzej.proporcje;

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

    public void proporcje(View view) {
        EditText editText1_text;
        EditText editText2_text;
        EditText editText3_text;
        EditText editText4_text;

        editText1_text = (EditText) findViewById(R.id.editText1);
        editText2_text = (EditText) findViewById(R.id.editText2);
        editText3_text = (EditText) findViewById(R.id.editText3);
        editText4_text = (EditText) findViewById(R.id.editText4);

        String text1 = editText1_text.getText().toString();
        String text2 = editText2_text.getText().toString();
        String text3 = editText3_text.getText().toString();
        String text4 = editText4_text.getText().toString();


        if (text1 == "x" || text1 == "X") {
            int t2, t3, t4, wynik;
            t2 = Integer.parseInt(text2);
            t3 = Integer.parseInt(text3);
            t4 = Integer.parseInt(text4);
            wynik = (t2 * t3) / t4;


            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Wynik!");
            builder.setMessage("x = " + wynik);
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    finish();
                }

            });
            AlertDialog alertDialog = builder.create();
            alertDialog.show();

        }
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.apk.andrzej.proporcje">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

666dbbdef8.png

Z góry jestem wdzięczny za życzliwość i pomoc :)

0

Nie widzę akcji wywołanej przez przycisk 'licz' i chyba dlatego nie reaguje.

0

Chodzi o to, że po wciśnięciu przycisku, program ma policzyć proporcje i wyświetlić alertDialog z wynikiem a to wszystko jest tak mi się wydaje :/ jest na dole .show(); jest .create(); nie mam pojęcia, powinno wszystko ładnie śmigać a nie śmiga :(

0

W którym momencie wywołujesz metodę proporcje?

0

W MainActivity.java w trybie tekstu to dodałem tam android:onClick="proporcje";

0

77bc0271db.png

0

Nigdzie nie masz stworzonego przycisku więc metoda proporcje() nie ma prawa dzialac. Dodaj takie coś w onCreate i powinno smigac.

Button button = (Button) findViewById(R.id.ID_twojego_buttona);

0

Dodałem i nadal nie działa :(

7cd049f3dd.png

Apka na telefonie wygląda o tak i wpisuję takie liczby jak na screenie i klikam przycisk. Powinno wyskoczyć jakieś okienko, ale nic się nie dzieje :( proszę pomóżcie!

41c6c489f2.png

0

Nawet IDE Ci podpowiada że masz nie używaną zmienną. Wypadało by coś zrobić z tym przypisanym przyciskiem. Odsyłam do guide androida
https://developer.android.com/reference/android/widget/Button.html

0

@Khuzy @MrHyperion Chodźcie tu i powiedzcie czemu to nie zadziała:P

if (text1 == "x" || text1 == "X")
0

Dzięki wszystkim za pomoc! Rozwiązałem problem niedziałającego przycisku natomiast jest i następny. Ustawiłem jeden przycisk tak aby kasował to co się wpisało i żeby można było ponownie użyć programu. Niestety po pierwszym użyciu i kliknięciu w przycisk "ok - stay in app" po wypełnieniu pól i kliknięciu przycisku licz nic się nie dzieje. Wiem, że w C# (w którym programuję na komputery) jest funkcja goto, która rozwiązałaby problem czy jest może jakiś tego zamiennik, lub inne wyjście, które rozwiązało by mój problem? Z góry dziękuję za kolejną pomoc i poniżej wklejam kod!

package com.apk.andrzej.proporcje;

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;


public class MainActivity extends AppCompatActivity {

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

    public void proporcje(View view) {
        final EditText editText1_text;
        final EditText editText2_text;
        final EditText editText3_text;
        final EditText editText4_text;

        editText1_text = (EditText) findViewById(R.id.editText1);
        editText2_text = (EditText) findViewById(R.id.editText2);
        editText3_text = (EditText) findViewById(R.id.editText3);
        editText4_text = (EditText) findViewById(R.id.editText4);

        String text1 = editText1_text.getText().toString();
        String text2 = editText2_text.getText().toString();
        String text3 = editText3_text.getText().toString();
        String text4 = editText4_text.getText().toString();


        if (text1.equals("x") || text1.equals("X")) {
            double t2, t3, t4, wynik;
            t2 = Double.parseDouble(text2);
            t3 = Double.parseDouble(text3);
            t4 = Double.parseDouble(text4);
            wynik = (t2 * t3) / t4;


            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Wynik!");
            builder.setMessage("x = " + wynik);
            builder.setNegativeButton("OK - stay in app", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    editText1_text.setText(" ");
                    editText2_text.setText(" ");
                    editText3_text.setText(" ");
                    editText4_text.setText(" ");
                    
                    dialog.dismiss();

                }
            });
            builder.setPositiveButton("OK - exit", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    finish();
                }

            });

            AlertDialog alertDialog = builder.create();
            alertDialog.show();

        }
    }
}
0

Dzięki wszystkim za życzliwość i pomoc! Apka została zakończona i jest jak dla mnie gites! Dzięki wielkie! Jak ja bede coś umiał to też pomogę :) - temat do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1