我是 android 开发的新手,将创建简单的拖放计算器。我的目标是制作从0 到 9的按钮,并通过单击它们来创建数字。
例如:
0 1 2 3 4 5 6 7 8 9
并通过单击它们创建数字245,然后将此数字拖动到总和标记 +中,然后重复第二个数字并自动检索结果。
首先,我现在将显示我的代码...
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) 是第二个命令,第一个命令不再读取。
我试着一起写,比如 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);
);