我正在尝试创建一个android程序。程序的工作原理是这样的,用户输入他想要扔的骰子的数量,程序就会执行此操作。我的花括号到处都是,我不想添加或删除它们。我用来控制输入验证的 while 语句不起作用。
你能帮我解决我的大括号问题并修复我的 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 --;
}
}
});
}
}
找出缺少的大括号应该放在哪里的一个简单“技巧”是使用 Eclipse 的“正确缩进”功能。 缩进将为您提供有关需要在何处插入或移除大括号的线索。
“>”运算符的问题在于
enternumberofdice
不是原始数字类型。 它的类型为EditText
;即文本输入小部件。
提示:您必须从小部件中提取“值”作为文本(即字符串),然后将文本转换为原始数字。
我注意到的一些问题:
1)在我看来,你的 OnCreate() 方法没有右括号。
2) 删除此行后面的 }:
this.myFaceValue = myFaceValue;
并添加 } 代替 // NOT WORKING
行。