1

ゲームのスコアボードとして使用する単純な電卓を設計しようとしています。最終的には、プレーヤーの数を選択できるようにしたい、画面に多くのスコアトラッカーを表示させたい、タッチ電卓を使用して加算または減算 (または除算または乗算) できるようにしたいと考えています。部。

現在、電卓のディスプレイに入力されたテキストを取得し、選択したプレーヤーのスコアに加算/減算/何でもします。

問題は、計算機の表示部分に数値キーを表示しようとすることです。たとえば、「1」を押してから「0」を押して、電卓に「10」を表示できるようにしたいと考えています。(Androidのデフォルトキーボードを使用して)手動でテキストを入力できるので、簡単だったはずですが、最も近いのは一度に1つの数字しか表示されないことです...

簡単に言えば、タッチパッド型の電卓の数値ボタンを機能させて表示しようとしています。以下は私の主なプロジェクトコードです。私のレイアウト コードが必要な場合は、それも投稿できます (ID への参照用)。

おそらく簡単な解決策であることはわかっていますが、見つけたすべてのチュートリアルは非常に複雑であるか、機能しません...どんな助けも大歓迎です!

package com.MCalculator8.test;

import com.MCalculator8.test.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MCalculator8Activity extends Activity {
    private EditText player1name;
    private EditText player2name;
    private EditText player3name;
    private EditText player4name;
    private EditText player5name;
    private EditText player6name;
    private EditText player7name;

    private EditText player1score;
    private EditText player2score;
    private EditText player3score;
    private EditText player4score;
    private EditText player5score;
    private EditText player6score;
    private EditText player7score;

    private EditText input;

    private TextView operator;
    private MCalculator8Activity mContext;

    // Called when the activity is first created. 
    @Override
    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mContext = this;

            setContentView(R.layout.main);

            player1name = (EditText) findViewById(R.id.player1name);
            player2name = (EditText) findViewById(R.id.player2name);
            player3name = (EditText) findViewById(R.id.player3name);
            player4name = (EditText) findViewById(R.id.player4name);
            player5name = (EditText) findViewById(R.id.player5name);
            player6name = (EditText) findViewById(R.id.player6name);
            player7name = (EditText) findViewById(R.id.player7name);

            input = (EditText) findViewById(R.id.input);

            player1score = (EditText) findViewById(R.id.player1score);
            player2score = (EditText) findViewById(R.id.player2score);
            player3score = (EditText) findViewById(R.id.player3score);
            player4score = (EditText) findViewById(R.id.player4score);
            player5score = (EditText) findViewById(R.id.player5score);
            player6score = (EditText) findViewById(R.id.player6score);
            player7score = (EditText) findViewById(R.id.player7score);

            operator = (TextView) findViewById(R.id.operator);

            // We create an OnClick Event in each button.

            Button plusButton = (Button) findViewById(R.id.add);
            Button minusButton = (Button) findViewById(R.id.subtract);
            Button multiplyButton = (Button) findViewById(R.id.multiply);
            Button player1equals = (Button) findViewById(R.id.player1equals);
            Button player2equals = (Button) findViewById(R.id.player2equals);
            Button player3equals = (Button) findViewById(R.id.player3equals);
            Button player4equals = (Button) findViewById(R.id.player4equals);
            Button player5equals = (Button) findViewById(R.id.player5equals);
            Button player6equals = (Button) findViewById(R.id.player6equals);
            Button player7equals = (Button) findViewById(R.id.player7equals);

            plusButton.setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {

                            operator.setText("+");

                    }

            });

            minusButton.setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {

                            operator.setText("-");

                    }

            });

            multiplyButton.setOnClickListener(new OnClickListener() {

                    public void onClick(View arg0) {

                            operator.setText("x");

                    }

            });


            player1equals.setOnClickListener(new OnClickListener() {

                    private AlertDialog show;

                    public void onClick(View arg0) {

                            if ((input.getText().length() == 0)
                                            || (input.getText().toString() == " ")) {
                                         //   || (input2.getText().length() == 0)
                                         //   || (input2.getText().toString() == " ")) {

                                    show = new AlertDialog.Builder(mContext).setTitle("Error")
                                                    .setMessage("Some inputs are empty")
                                                    .setPositiveButton("OK", null).show();

                            } else if (operator.getText().equals("")) {

                                    show = new AlertDialog.Builder(mContext).setTitle("Error")
                                                    .setMessage("Operator is null").setPositiveButton(
                                                                    "OK", null).show();

                            } else if (operator.getText().equals("+")) {

                                    double result = new Double(input.getText().toString())
                                                    + new Double(player1score.getText().toString());

                                    player1score.setText(Double.toString(result));

                            } else if (operator.getText().equals("-")) {

                                    double result = new Double(player1score.getText().toString())
                                                    - new Double(input.getText().toString());

                                    player1score.setText(Double.toString(result));

                            } else if (operator.getText().equals("x")) {

                                    double result = new Double(input.getText().toString())
                                                    * new Double(player1score.getText().toString());


                                    player1score.setText(Double.toString(result));

                            }

                    }

            });
4

2 に答える 2