1

私はアンドロイド開発の初心者で、簡単なドラッグアンドドロップ電卓を作成しようとしています。私の目標は、0 から 9までのボタンを作成し、それらをクリックして数字を作成することです。

例えば:

0 1 2 3 4 5 6 7 8 9

それらをクリックして番号245を作成し、たとえばこの番号を合計マーク +にドラッグし、2 番目の番号を繰り返して結果を自動的に取得します。

まず、コードを表示します...

MainActivity.java

package com.coreprojects.calculator;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;

public class MainActivity extends Activity {

    TextView calc_btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    // This method comes from XML button = buttonClick
    public void buttonClick(View v) {

        // Textarea where numbers will be shown
        TextView TV = (TextView) findViewById(R.id.calc_cache_1);

        // Get the ID of buttons
        Button calc_btn_1 = (Button) findViewById(R.id.button1);
        Button calc_btn_2 = (Button) findViewById(R.id.button2);

        // INT type numbers convert to string, because of [setText]
        String buttonText_1 = calc_btn_1.getText().toString();
        String buttonText_2 = calc_btn_2.getText().toString();

        // Result as text
        TV.setText(buttonText_1); // first number is not shown
        TV.setText(buttonText_2); // second number


        // alert
        /**
        String pressed = "Operation Done";
        new AlertDialog.Builder(this).setTitle("result").setMessage(pressed)
                .setNeutralButton("Done", null).show();
        */
    }

}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/calc_cache_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/main_text" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:clickable="true"
        android:onClick="buttonClick"
        android:text="@string/button_1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="64dp"
        android:clickable="true"
        android:onClick="buttonClick"
        android:text="@string/button_2" />

</RelativeLayout>

文字列.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Calculator</string>
    <string name="main_text"></string>
    <string name="menu_settings">Settings</string>
    <string name="button_1">1</string>
    <string name="button_2">2</string>

</resources>

今問題...

ボタンをクリックすると、いつでも結果に2番が表示されます。

TV.setText(buttonText_2) は 2 番目のコマンドで、最初のコマンドは読み取られません。

TV.setText(buttonText_1 + buttonText_2) のようにまとめて書き込もうとしましたが、どのボタンをクリックしても12になります...

では、番号をクリックして番号を追加するにはどうすればよいですか? また、ここに表示されている場合、XML でクリック可能なボタンがあり、押されたボタンの ID を取得しますが、より動的にしたいと考えています。

例: ボタンを押したときに、その ID を取得せず、単にボタン ID を識別して値を取得します。jQueryで簡単なアナログを表示できます:

$(".button_class_not_ID").click(
    var elementValue = $(this).html();
    or
    var elementValue = $(this).attr("id");
    console.log(elementValue);
);
4

0 に答える 0