Wie wird die Textansicht als Methodenausgabe in andrioid festgelegt?

Ich habe gerade erst angefangen, Android Studio zu verwenden und arbeite derzeit an einer Roman Numeral Translator-App. Die Oberfläche der App sieht folgendermaßen aus:Anwendungsschnittstelle

Der Benutzer gibt über die Tastatur eine Ganzzahl ein, die in der oben gezeigten Textansicht angezeigt wird. Wenn sie auf die Schaltfläche "Konvertieren" klicken, wird die eingegebene Ganzzahl übernommen und konvertiert (das Programm kann die Eingabe abfangen, wenn sie eine Zeichenfolge oder ein Zeichen enthält). Die App setzt dann die Textansicht auf das Ergebnis zurück, nachdem der Benutzer auf die Schaltfläche "Konvertieren" geklickt hat.

Zurzeit enthält meine Hauptaktivität die onClickListener für die Schaltflächen und eine separate Übersetzermethode für die Übersetzungen. Mein Problem ist die Schaltfläche "Konvertieren". Ich bin nicht sicher, wie ich die Eingabe von der Übersetzermethode abrufen und als TextView festlegen soll, wenn die Konvertierung abgeschlossen ist. Hier ist das Beispiel meines Codes:

"Convert" button Listener-

convert.setOnClickListener(
                new View.OnClickListener() {
                    public void onClick(View v) {
                        TextView numeralInput = (TextView) findViewById(R.id.textView);
                        String intValue = numeralInput.getText().toString();
                        try{
                            int integer = Integer.parseInt(intValue);
                            if (integer > 0 && integer <= 4999){
                                translator(integer);

                            }else{
                                numeralInput.setText("Please enter an integer between 0 and 4,999.");
                            }

                        }catch(NumberFormatException e){
                            numeralInput.setText("Invalid input try again.");
                        }
                    }
                }
        );

`

Translator Method-

public static void translator(int integer) {
        LinkedList<String> stack = new LinkedList<String>();
        // if (integer > 0 && integer <= 4999) {
        //ArrayList<Integer> placement = new ArrayList<Integer>();
        int place = (int) Math.log10(integer);
        for (int i = 0; i <= place; i++) {
            //while(integer > 0){
            //System.out.println(integer);
            int placeOfValue = integer % 10;
            //stack.push(placeOfValue);
            //System.out.print(stack);

            //System.out.print(placeOfValue +":" + i);
            String placement = "";
            switch (i) {
                case 0:
                    placement = ones(placeOfValue);

                    break;
                case 1:
                    placement = tens(placeOfValue);

                    break;
                case 2:
                    placement = hundreds(placeOfValue);

                    break;
                case 3:
                    placement = thousands(placeOfValue);

                    break;
                default:
                    break;
            }

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
                stack.push(placement);
            }
            integer = integer / 10;

            //System.out.print(placement);
            // System.out.println(placement.size());
            //}
//              for(int j = 0; j < placement.size(); j++){
//                                    double tenthPower = Math.floor(Math.log10(placement.get(j)));
//                                    double place = Math.pow(10, tenthPower);
//                                    System.out.println(place);
//
//              }
            // }
            while (!stack.isEmpty()) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
                    System.out.print(stack.pop());
                }
            }
//        } else {
//            System.out.println("Please enter an integer between 0 and 4,999.");
//        }

        }
    }

`

Die anderen Methoden im Übersetzer ähneln einer Bibliothek für die römischen Ziffern, die jeweils eine Ziffer für jeden der unten gezeigten Ortswerte enthält.

Thousands method-

public static String thousands(int integer) {
        String thouValue = "";
        switch (integer) {

            case 1:
                thouValue = "M";
                //System.out.print("M");
                break;
            case 2:
                thouValue = "MM";
                //System.out.print("MM");
                break;
            case 3:
                thouValue = "MMM";
                //System.out.print("MMM");
                break;
            case 4:
                thouValue = "MMMM";
                //System.out.print("MMMM");
                break;
            default:
                thouValue = "";
                break;
        }
        return thouValue;
    }

`

Antworten auf die Frage(4)

Ihre Antwort auf die Frage