2017-01-11 4 views
-1

Ich erzeuge zufällige Blitze eines Knopfes und ich möchte wissen, welche genaue Zahl jedes Mal ausgewählt wird, damit ich sie schließlich zu einem ArrayList für ein Projekt hinzufügen kann, das ich durchlaufe.Wie zeige ich eine in einem TextView generierte Zufallszahl an?

TextView randomTextView; 
Random r = new Random(); 

private void sequenceFunction() { 
    //Change Alpha from Fully Visible to Invisible 
    final Animation animation = new AlphaAnimation(1, 0); 
    //Duration - A Second 
    animation.setDuration(1000); 
    //Animation Rate 
    animation.setInterpolator(new LinearInterpolator()); 
    animation.setStartOffset(250); 
    animation.setDuration(250); 
    //Repeat Animation 
    animation.setRepeatCount(r.nextInt(10)); 

    // Reverse animation at the end so the button will fade back in 
    animation.setRepeatMode(Animation.REVERSE); 

    //Button 1 Flashes 
    final Button btn = (Button) findViewById(R.id.button); 
    btn.startAnimation(animation); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View view) { 
      view.clearAnimation(); 
     } 
    }); 
} 

Ich möchte das Ergebnis angezeigt werden, was immer Zufallszahl über den randomTextView TextView generiert. Dieser Teil ist kritisch, damit ich weiß, dass die Zufallsfunktion so funktioniert, wie sie soll. Ich habe es bereits versucht

randomTextView.setText(r.nextInt(10)); 

Allerdings hat es nicht gefallen. Irgendwelche Ideen, wie man die gewählte Zufallszahl erhält, würden sehr geschätzt werden?

+0

'randomTextView.setText ("" + r.nextInt (10));' –

+0

was Sie nicht mögen über 'randomTextView.setText (r.nextInt (10)) '? – TWL

+0

@TWL 'setText()' benötigt eine CharSequence oder eine Ressourcen-ID. Das ist offensichtlich nicht der Fall. –

Antwort

1

this helps -

private void sequenceFunction() { 
    //Change Alpha from Fully Visible to Invisible 
    final Animation animation = new AlphaAnimation(1, 0); 
    //Duration - A Second 
    animation.setDuration(1000); 
    //Animation Rate 
    animation.setInterpolator(new LinearInterpolator()); 
    animation.setStartOffset(250); 
    //Repeat Animation 
    int randomValue = r.nextInt(); 
    // code to add value to array 
    animation.setRepeatCount(randomValue); 
    randomTextView.setText(String.valueOf(randomValue)); 

    // Reverse animation at the end so the button will fade back in 
    animation.setRepeatMode(Animation.REVERSE); 

    //Button 1 Flashes 
    final Button btn = (Button) findViewById(R.id.button); 
    btn.startAnimation(animation); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(final View view) { 
      view.clearAnimation(); 
     } 
    }); 


} 
0

Wenn man sich in der Dokumentation von TextView haben, können Sie eine Ressource-ID sehen, dass setText(int) erwartet tatsächlich: https://developer.android.com/reference/android/widget/TextView.html#setText(int)

So haben Sie Ihre int zu einem CharSequence drehen Sie einfach tun

randomTextView.setText("" + r.nextInt(10)); 
könnte

, die Ihre ganze Zahl in eine Zeichenfolge konvertiert.

+0

Hallo Danke für deine Antwort wie bekomme ich die Nummer von animation.setRepeatCount (r.nextInt (10)); wie wenn ich den randomTextView.setText (r.nextInt (10) + ""); es sieht es als eine neue Zufallszahl und nicht die, die ich verwende, um die Animation blinkt zu erzeugen? –

+0

In diesem Fall speichert nur den Wert in einer Variablen wie folgt aus: 'int random = r.nextInt (10);' ' animation.setRepeatCount (random);' '...' ' randomTextView. setText (Integer.toString (random)); ' – SimMac

+0

Speichern Sie' r.nextint (10) 'in einer Variablen, übergeben Sie es dann an' animation.setRepeatCount() 'und verwenden Sie es überall. –

0

TextView.setText kann entweder mit einer resource ID (die eine ganze Zahl ist) oder mit einer CharSequence, zum Beispiel eine String verwendet werden.

Es gibt viele Möglichkeiten, dies zu tun, einschließlich

int random = r.nextInt(10); 
randomTextView.setText(String.valueOf(random); 
randomTextView.setText(Integer.toString(random); 
randomTextView.setText(String.format("%d", random); 

"" + r.nextInt(10)nicht anwenden. Ich weiß, es ist kurz, es ist praktisch, aber es ist einfach ineffizient und schlechter Stil.

+0

Hallo danke für die Korrektur, aber wie würde ich das verwenden, um die genaue Zufallszahl zu erhalten, die von animation.setRepeatCount erzeugt wird (r.nextInt (10)); ? –

+0

Dieser Code zeigt die generierte Nummer in der 'TextView' an. Wenn Sie die Zahl mehrmals verwenden möchten, müssen Sie sie in einer Variablen wie dieser zwischenspeichern: 'int number = r.nextInt (10); randomTextView.setText (String.valueOf (number)); 'und benutze dann die Variable' number'. –

Verwandte Themen