Моя программа не позволяет мне вызывать метод из другого класса - PullRequest
0 голосов
/ 13 марта 2011

Я пытаюсь создать программу для Android. Программа работает следующим образом: пользователь вводит количество кубиков, которые он хочет бросить, и программа делает это. Моя фигурная скобка повсюду, и я не должен был добавлять или удалять их. Мое утверждение while, которое я использую для контроля проверки ввода, не работает.

Можете ли вы помочь бороться с моими фигурными скобками и исправить мое заявление в то время как.

Вот как выглядит моя программа

http://img232.imageshack.us/i/alphascreen.png/

</p>

<p>package com.warhammerdicerrolleralpha;</p>

<p>import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;</p>

<p>public class myMain extends Activity 
{</p>

EditText enternumberofdice;

ImageView i = new ImageView(this);
{
    i.setAdjustViewBounds(true);
}
private int myFaceValue;

/**
 * Called when the activity is first created.
 * 
 * @return
 */
@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}

public int roll() 
{
    int val = (int) (6 * Math.random() + 1); // Range 1-6
    setValue(val);
    return val;
}

int myNum = 0;

{
    try 
        {
            myNum = Integer.parseInt(enternumberofdice.getText().toString());
        } 
    catch(NumberFormatException nfe) 
        {
            enternumberofdice.setText("Does not work");
        } 
}

public int getValue() 
{
    return myFaceValue;
}

public void setValue(int myFaceValue) 
    {
        this.myFaceValue = myFaceValue;

    }
        {  

        switch (myFaceValue)
        {
            case 5: 
                i.setImageResource(R.drawable.dicefive);
            break;
            case 1: 
                i.setImageResource(R.drawable.diceone);
                break;
            case 3: 
                i.setImageResource(R.drawable.dicethree);
                break;
            case 2: 
                i.setImageResource(R.drawable.dicetwo);
                break;
            case 4: 
                i.setImageResource(R.drawable.dicefour);
                break;
            case 6: 
                i.setImageResource(R.drawable.dicesix);
                break;

        }     

    Button buttonGenerate = (Button)findViewById(R.id.button1);

    final TextView textGenerateNumber = (TextView)findViewById(R.id.text4);

    enternumberofdice = (EditText) findViewById(R.id.enternumberofdice);


buttonGenerate.setOnClickListener(new OnClickListener()
{
            @Override
            public void onClick(View v) 
            {
                while (myNum  > 0 )
                {

                    // TODO Auto-generated method stub
                    textGenerateNumber.setText(String.valueOf(enternumberofdice));
                    roll();
                    myNum  --;
                }
            }

       });      
}

}

Ответы [ 2 ]

1 голос
/ 13 марта 2011

Простой «трюк» для определения того, куда должны идти недостающие скобки, заключается в использовании функции «правильного отступа» в Eclipse.Отступы подскажут вам, куда вам нужно вставить или удалить скобки.


Проблема с оператором '>' заключается в том, что enternumberofdice не является примитивным типом числа.Это типа EditText;т.е. виджет для ввода текста.

Подсказка: вы должны извлечь «значение» из виджета как текст (то есть строку), а затем преобразовать текст в примитивное число.

0 голосов
/ 13 марта 2011

Некоторые проблемы, которые я замечаю:

1) Мне кажется, у вашего метода OnCreate () нет закрывающих скобок.

2) Удалите} сразу после этой строки: this.myFaceValue = myFaceValue; и добавьте} вместо строки // NOT WORKING.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...