Что касается развития Android - PullRequest
0 голосов
/ 26 января 2010

Я делаю приложение, в котором я должен отображать числа в TextView случайным образом и автоматически с помощью таймера. Я могу получить случайные числа в журнале без повторения, но я не могу напечатать их на устройстве, пожалуйста, помогите мне ...

С уважением, Акки

Источник:

//RandomNumber.java
public class RandomNumber extends Activity{
    static Random randGen = new Random();
    int tambolanum,count=0;

    private Button previousbutton;
    private Button startbutton;
    private Button nextbutton;

    int bingonum[]=new int[90];
    boolean fill;

    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.numbers);
        LinearLayout number=(LinearLayout)findViewById(R.id.numbersview);
        final TextView randomnum=(TextView)findViewById(R.id.numberstext);
        previousbutton=(Button)findViewById(R.id.previous);
        nextbutton=(Button)findViewById(R.id.next);
        startbutton=(Button)findViewById(R.id.start);
        startbutton.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // Perform action on click
                //--- Initialize the array to the ints 0-90
                do{
                    fill = true;
                    //Get new random number
                    tambolanum = randGen.nextInt(90) + 1;
                    //If the number exists in the array already, don't add it again
                    for(int i = 0; i < bingonum.length; i++)
                    {
                        if(bingonum == tambolanum)
                        {
                            fill = false;
                        }
                    }
                    //If the number didn't already exist, put it in the array and move 
                    //To the next position
                    if(fill == true)
                    {
                        bingonum[count] = tambolanum;
                        count++;
                    }
                } while(count < 90);
                for(i=0;i
                {
                    randomnum.setText(Integer.toString(bingonum[i]);
                } 
            }

Ответы [ 2 ]

0 голосов
/ 28 января 2010

Проблема, с которой вы сталкиваетесь, заключается в том, что вы перезаписываете свой текст при каждом изменении этого цикла:

for(i=0;i  
{
    randomnum.setText(Integer.toString(bingonum[i]);
} 

Сначала вам нужно создать строку, а затем установить ее.Что-то вроде:

StringBuilder sb = new StringBuilder();
for(i=0;i  /* where's the rest of this for-statement? */
{
    sb.append(Integer.toString(bingonum[i]);
} 
randomnum.setText(sb.toString());
0 голосов
/ 26 января 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...