안드 입문한지 아직 일주일도 안됐거든...


지금 중간과제 같은걸로 은행 입출금 어플 간단한거 만들고있는데


좀 막히는 부분이 생김... 소스 별로 안길고 잘못된 부분 강조해놨어 좀 분석좀 부탁해 ㅠ



일단 만들면 이렇게 나옴







ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


package com.example.omi;


import android.widget.EditText;


public class Account {

public EditText name;

int money = 0;


public Account(EditText name) {

this.name = name;

}

public void input(int a) {

money += a;

}

public void output(int b) {

money -= b;

}

public int jan() {

return money;

}

public EditText nameGet() {

return name;

}

}


클래스 자체를 벡터에 넣어서 구현할거라서 틀만 만들어놨어. 생성자로 이름 넣고 다른메소드는 그냥 입출금 ㅇㅇ




ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ




package com.example.omi;


import java.util.Iterator;

import java.util.Vector;


import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;


public class MainActivity extends Activity implements View.OnClickListener {

TextView result; // 신경 안써도됨

EditText edName, edDeposit, edWithdraw, txtConfirm; // 순서대로 계좌이름, 계좌에 돈넣기, 돈빼기, 잔액확인

Button create, deposit, withdraw, confirm; // 버튼 ㅇㅇ

Vector<Account> vec = new Vector<Account>();

int i;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

i = 0;

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

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

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

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

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

create = (Button)findViewById(R.id.create);

deposit = (Button)findViewById(R.id.deposit);

withdraw = (Button)findViewById(R.id.withdraw);

confirm = (Button)findViewById(R.id.confirm);

create.setOnClickListener(this);

deposit.setOnClickListener(this);

withdraw.setOnClickListener(this);

confirm.setOnClickListener(this);                   // 여기까지는 그냥 xml에 있는 변수들 불러온거

}

public void onClick(View v) { // 이벤트 핸들러

Account ac = null; // 벡터의 각 요소를 참조하기 위한 참조변수 선언

if(v.getId() == R.id.create) 

vec.add(new Account(edName)); // edName이 계좌 주인이름임. 이걸로 계좌를 찾음

else if(v.getId() == R.id.deposit) {

Iterator<Account> itr = vec.iterator();

int jjj = 0;

while(itr.hasNext()) {

ac = itr.next();

if(ac.nameGet().equals(R.id.edName))   // 각if문에서 뭔가오류가생김 아마 equals를 썻지만 같다고 인식을 안한거같음

ac.input(Integer.parseInt(edDeposit.getText().toString()));

}

}

else if(v.getId() == R.id.withdraw) {

Iterator<Account> itr1 = vec.iterator();

while(itr1.hasNext()) {

ac = itr1.next();

if(ac.nameGet().equals(R.id.edName))

ac.output(Integer.parseInt(edWithdraw.getText().toString()));

}

}

else if(v.getId() == R.id.confirm) {

Iterator<Account> itr2 = vec.iterator();

while(itr2.hasNext()) {

ac = itr2.next();

if(ac.nameGet().equals(R.id.edName)) 

confirm.setText(Integer.toString(ac.jan()));


}

}

}

}



분홍색 음영 씌어놓은거 보이지??


아마 거기서 뭔가 제대로 잘못읽는거 같음.


if문이 작동을 안해..ㅠㅠ


내가 생각한건 참조변수 ac를 이용해서 itr.next()로 벡터의 요소를 참조하고 거기에다가 값을 집어넣는거임.


소스길이도 별로 안길어서 딱히 뭐 메소드 여러개 안만들고 그냥 이벤트 메소드 하나에 우겨넣어놨거든


이게 문제가 되는걸까?