我的程序不允许我从不同的类调用方法

时间:2011-03-13 02:42:38

标签: java android eclipse compiler-construction loops

我正在尝试创建一个Android程序。程序就像这样工作,用户输入他想扔的骰子数量,程序就这样做了。我的大括号到处都是,我不会添加或删除它们。我用来控制输入验证的while语句不起作用。

你能帮我打击我的花括号并修复我的声明。

这是我的程序的样子

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 --; } } }); }

}

2 个答案:

答案 0 :(得分:1)

用于确定丢失的大括号应该去的位置的一个简单的“技巧”是使用Eclipse的“正确缩进”功能。缩进将为您提供有关插入或移除大括号的位置的线索。


'>'的问题运算符是enternumberofdice不是原始数字类型。它的类型为EditText;即文本输入小部件。

提示:您必须从窗口小部件中提取“值”作为文本(即字符串),然后将文本转换为基元编号。

答案 1 :(得分:0)

我注意到的一些问题:

1)在我看来,你的OnCreate()方法没有右括号。

2)在此行之后删除}:this.myFaceValue = myFaceValue;并添加}}代替// NOT WORKING行。