java - 如何根据随机结果更改骰子滚轮的ImageView

标签 java android imageview dice

我正在为我的 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/

相关文章:

android - 为什么我的 CheckedTextView 图标跳转到我的 GridView 中的不同元素?

java - 如何使用 Box Java SDK 从图像文件中获取特定大小的缩略图?

java - 所有 Android 类的实际基类是什么?

java - 用java获取下一个小时

java - 注入(inject) @Resource 为什么在容器外工作?

java - HttpClient POST 提交表单失败+结果字符串被截断(不完整)

Android EditText 焦点

java - java android中的ArrayList groupby基于没有java 8流和lambda的相同属性

安卓工作室 : changing imageview weekly

android - 为适用于 Android 的 Google map 标记使用 xml 布局