<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<EditText
android:id="@+id/editTextNumberDecimal1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom|right"
android:layout_weight="1"
android:hint="Input your Number"
android:inputType="numberDecimal"
android:textSize="20dp" />
<EditText
android:id="@+id/editTextNumberDecimal2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom|right"
android:layout_weight="1"
android:hint="Input your Number"
android:inputType="numberDecimal"
android:textSize="20dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<Button
android:id="@+id/btn_add"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="+" />
<Button
android:id="@+id/btn_sub"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="-" />
<Button
android:id="@+id/btn_mul"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="*" />
<Button
android:id="@+id/btn_div"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="/" />
<Button
android:id="@+id/btn_mod"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:text="%" />
</LinearLayout>
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="20"
android:textSize="24dp"
android:gravity="center_vertical|center_horizontal"
android:text="Result" />
<Button
android:id="@+id/btn_clear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_weight="1"
android:text="clear" />
</LinearLayout>
버튼이 여러개 일때 진행하는 자바 코드
public class MainActivity extends AppCompatActivity{
Button[] btn_menu = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_menu = new Button[6];
int[] btn_id = {R.id.btn_add, R.id.btn_sub, R.id.btn_mul, R.id.btn_div, R.id.btn_mod, R.id.btn_clear};
for(int i=0; i<6; i++){
btn_menu[i] = findViewById(btn_id[i]);
btn_menu[i].setOnClickListener(btnListener);
}
}
View.OnClickListener btnListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i=0; i<6; i++){
if(v.getId() == btn_menu[i].getId()){
Toast.makeText(getApplicationContext(),String.format("%s",btn_menu[i].getId()),Toast.LENGTH_SHORT).show();
}
}
}
};
}
최종코드
public class MainActivity extends AppCompatActivity{
EditText editTextNumberDecimal1;
EditText editTextNumberDecimal2;
TextView tv_result;
String numString1="", numString2="";
int numResult;
Button[] btn_menu = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNumberDecimal1 = findViewById(R.id.editTextNumberDecimal1);
editTextNumberDecimal2 = findViewById(R.id.editTextNumberDecimal2);
tv_result = findViewById(R.id.tv_result);
btn_menu = new Button[6];
int[] btn_id = {R.id.btn_add, R.id.btn_sub, R.id.btn_mul, R.id.btn_div, R.id.btn_mod, R.id.btn_clear};
for(int i=0; i<6; i++){
btn_menu[i] = findViewById(btn_id[i]);
}
for (int i=0; i<6; i++) {
btn_menu[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
numString1 = editTextNumberDecimal1.getText().toString();
numString2 = editTextNumberDecimal2.getText().toString();
switch (v.getId()) {
case R.id.btn_clear:
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
tv_result.setText("Result");
break;
case R.id.btn_add:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) + Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number1", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_sub:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) - Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number2", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mul:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) * Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number3", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_div:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) / Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number4", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mod:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) % Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number5", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
}
});
}
}
}
최종코드2
public class MainActivity extends AppCompatActivity{
EditText editTextNumberDecimal1;
EditText editTextNumberDecimal2;
TextView tv_result;
String numString1="", numString2="";
int numResult;
Button[] btn_menu = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNumberDecimal1 = findViewById(R.id.editTextNumberDecimal1);
editTextNumberDecimal2 = findViewById(R.id.editTextNumberDecimal2);
tv_result = findViewById(R.id.tv_result);
btn_menu = new Button[6];
int[] btn_id = {R.id.btn_add, R.id.btn_sub, R.id.btn_mul, R.id.btn_div, R.id.btn_mod, R.id.btn_clear};
for(int i=0; i<6; i++){
btn_menu[i] = findViewById(btn_id[i]);
btn_menu[i].setOnClickListener(btnListener);
}
}
View.OnClickListener btnListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
numString1 = editTextNumberDecimal1.getText().toString();
numString2 = editTextNumberDecimal2.getText().toString();
for(int i=0; i<6; i++){
if(v.getId() == btn_menu[i].getId()){
switch (v.getId()) {
case R.id.btn_clear:
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
tv_result.setText("Result");
break;
case R.id.btn_add:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) + Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_sub:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) - Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mul:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) * Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_div:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) / Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mod:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) % Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
}
}
}
};
}
OnCreate( )안에 Button.OnClickListener 구현
- Button.OnClickListener 아래에 findViewById( ) 및 SetOnClickListener( ) 가 있어야함
- SetOnClickListener( )가 공통으로 btnListener를 호출
public class MainActivity extends AppCompatActivity{
EditText editTextNumberDecimal1;
EditText editTextNumberDecimal2;
TextView tv_result;
String numString1="", numString2="";
int numResult;
Button[] btn_menu = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextNumberDecimal1 = findViewById(R.id.editTextNumberDecimal1);
editTextNumberDecimal2 = findViewById(R.id.editTextNumberDecimal2);
tv_result = findViewById(R.id.tv_result);
Button.OnClickListener btnListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
numString1 = editTextNumberDecimal1.getText().toString();
numString2 = editTextNumberDecimal2.getText().toString();
for(int i=0; i<6; i++){
if(v.getId() == btn_menu[i].getId()){
switch (v.getId()) {
case R.id.btn_clear:
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
tv_result.setText("Result");
break;
case R.id.btn_add:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) + Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_sub:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) - Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mul:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) * Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_div:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) / Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
case R.id.btn_mod:
if(!numString1.equals("") && !numString2.equals("")) {
numResult = Integer.parseInt(numString1) % Integer.parseInt(numString2);
tv_result.setText(Integer.toString(numResult));
}
else {
Toast.makeText(getApplicationContext(), "Input your Number", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
editTextNumberDecimal1.setText("");
editTextNumberDecimal2.setText("");
}
}
}
};
btn_menu = new Button[6];
int[] btn_id = {R.id.btn_add, R.id.btn_sub, R.id.btn_mul, R.id.btn_div, R.id.btn_mod, R.id.btn_clear};
for(int i=0; i<6; i++){
btn_menu[i] = findViewById(btn_id[i]);
btn_menu[i].setOnClickListener(btnListener);
}
}
}
'PROGRAM > Android' 카테고리의 다른 글
ndk-bundle did not have a source.properties file (1) | 2021.05.17 |
---|---|
안드로이드스튜디오 Toast 메시지 안뜰 때 (0) | 2021.04.23 |
myCalc App (1) (0) | 2021.04.20 |
EditText, TextView, Button and Toast (0) | 2021.04.20 |
MyAlarm (0) | 2020.10.27 |