My program won't allow me to call a method from a different class
I'm trying to create an android program. The program works like this, a user enters the number of dice he wants to throw and the program does it. My curly brace are all over the place and I don't were to add or remove them. My while statement I use to control input verification, does not work.
Can you help fight my curly braces and fix my while statement.
Here how my program looks like
http://img232.imageshack.us/i/alphascreen.png/
package com.warhammerdicerrolleralpha;
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;
public class myMain extends Activity
{
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 --;
}
}
});
}
}
A simple "trick" for figuring out where the missing braces ought to go is to use Eclipse's "correct indentation" function. The indentation will give you clues as to where you need to insert or remove braces.
The problem with the '>' operator is that enternumberofdice
is not a primitive number type. It is of type EditText
; i.e. a text entry widget.
Hint: you have to extract the "value" from the widget as text (i.e. a String), then convert the text to a primitive number.
Some problems I notice:
1) It looks to me like your OnCreate() method doesn't have closing brackets.
2) Remove the } right after this line: this.myFaceValue = myFaceValue;
and add a } in place of the // NOT WORKING
line.
精彩评论