我正在为我的 App Development 结业类(class)构建一个 Fate Dice 滚轮应用程序,但我在根据结果更改骰子的 ImageView 时遇到了问题。这是代码(滚轮在 fragment 选项卡中):
public class RollDiceFragment extends Fragment {
private Button btnRoll;
private EditText et_rollDice;
private ImageView iv_dice1, iv_dice2, iv_dice3, iv_dice4;
Random random;
public RollDiceFragment() {
}
public static RollDiceFragment newInstance() {
RollDiceFragment fragment = new RollDiceFragment();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_rolldice, container, false);
random = new Random();
btnRoll = rootView.findViewById(R.id.btnRoll);
et_rollDice = rootView.findViewById(R.id.et_rollDice);
iv_dice1 = rootView.findViewById(R.id.iv_dice1);
iv_dice2 = rootView.findViewById(R.id.iv_dice2);
iv_dice3 = rootView.findViewById(R.id.iv_dice3);
iv_dice4 = rootView.findViewById(R.id.iv_dice4);
btnRoll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RollDiceFragment.this.rollDice();
}
});
return rootView;
}
private void rollDice(){
int d1 = this.random.nextInt(3) -1;
int d2 = this.random.nextInt(3) -1;
int d3 = this.random.nextInt(3) -1;
int d4 = this.random.nextInt(3) -1;
String print = (((BuildConfig.FLAVOR + addResult(d1)) + addResult(d2)) + addResult(d3)) + addResult(d4);
int diceSum = ((d1 + d2) + d3) + d4;
if (diceSum > 0){
this.et_rollDice.setText("+" + Integer.toString(diceSum));
}else {
this.et_rollDice.setText(Integer.toString(diceSum));
}
}
public String addResult(int i){
if (i == 1){
return "+";
}
if (i == 0){
return "0";
}
return "-";
}
}
随机滚轮在模拟器上运行良好,结果显示在 editText 行中。我只想根据每个骰子的结果更改图像。如果骰子显示“-”,则显示的图像应为 diceminus.jpg...。将不胜感激 =)
最佳答案
问题是您将一个 int 传递给 setText 方法。
在其他情况下,将其更改为使用以字符串作为参数的 setText 重载:
this.et_rollDice.setText("" + Integer.toString(diceSum));
关于java - 如何根据随机结果更改骰子滚轮的ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307437/