마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼 하나를 눌렀을 때 두개 수행이 오류납니다... 제발.. 알려주세요..

0 추천
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import java.lang.reflect.Array;

//import static com.example..R.menu.menu_country;

public class exchange extends AppCompatActivity implements View.OnClickListener{

    EditText input_money1;
    TextView input_money2;
    ImageButton but_next,exchange;
    Button choose_country1,choose_country2;
    ImageButton change,en;
    MenuItem item_1;
    int input1;

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

        input_money1 = (EditText) findViewById(R.id.input_money1);
        input_money2 = (TextView) findViewById(R.id.input_money2);
        but_next = (ImageButton) findViewById(R.id.but_next);
        but_next.setOnClickListener(this);
        exchange = (ImageButton) findViewById(R.id.change_but);
        exchange.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                /*String s1=input_money1.getText();
                s1=substring(0,s1.length()-3);*/
                int money1 = Integer.parseInt(input_money1.getText().toString());
                int result;
                result = money1 * 1100;
                input_money2.setText("" + result);
            }
        });
        choose_country1 = (Button) findViewById(R.id.choose_country1); //before 나라
        choose_country2 = (Button) findViewById(R.id.choose_country2); //after 나라
        change = (ImageButton) findViewById(R.id.change_but); 
        en = (ImageButton) findViewById(R.id.en);
        input_money1 = (EditText) findViewById(R.id.input_money1); // before 돈을 입력하는 곳
        //input1 = Integer.parseInt(input_money1.getText().toString());// input받은 돈을 int값으로 바꾸어 계산한다.
        registerForContextMenu(choose_country1);
        registerForContextMenu(choose_country2);
        en.setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View view) {
                en.setVisibility(View.VISIBLE);
            }
        });
        change.setOnClickListener(new View.OnClickListener() { 
            @Override
            public void onClick(View view) {
                if (input_money1.getText().toString().equals(""))
                    Toast.makeText(exchange.this, "금액을 입력하세요", Toast.LENGTH_SHORT).show();
                else {
                    en.setVisibility(View.VISIBLE);
                }

            }
        });
    }
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { //menu를 만드는 곳..? 아마도
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater menuInflater=getMenuInflater();
        if(v.getId()==R.id.choose_country1){
            //menu.setHeaderIcon(R.drawable.candy);
            menuInflater.inflate(R.menu.menu_country,menu);
        }
        if(v.getId()==R.id.choose_country2){
            //menu.setHeaderIcon(R.drawable.candy2);
            menuInflater.inflate(R.menu.menu_country2,menu);
        }
    }


    @Override
    public boolean onContextItemSelected(MenuItem item) {//item이 선택되었는가?!
        super.onContextItemSelected(item); //위에서 사용해야 하기때문에 super는 윗부분에!
        switch (item.getItemId()){
            case R.id.choose_korea:
                choose_country1.setText("대한민국");
                return true;
            case R.id.choose_japan:
                choose_country1.setText("일본");
                return true;
            case R.id.choose_china:
                choose_country1.setText("중국");
                return true;
            /***************여긴 두번째 나라 선택*****************/
            case R.id.choose_korea2:
                choose_country2.setText("대한민국");
                return true;
            case R.id.choose_japan2:
                choose_country2.setText("일본");
                return true;
            case R.id.choose_china2:
                choose_country2.setText("중국");
                return true;
        }
        return false;
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(this, money_list.class);
        startActivity(intent);
    }
}
 
코드는 이렇게 됩니다... 원래 exchange 이미지 버튼을 클릭하면, 값을 계산하게 만든 후에 나중에는 사진을 보여주는 수행을 하게 만들었는데, 갑자기 계산부분 viewtext에 아무것도 뜨지 않습니다... 모니터에도 오류라는 문구도 안뜨고.. 도대체 무슨 오류인가요ㅠㅠㅠ 제발 도와주세요..ㅠ ㅠ
ssun (140 포인트) 님이 2017년 6월 19일 질문

1개의 답변

0 추천
exchange와 change가 둘다

id가 change_but인 뷰로 초기화 되어있네요
Charlesz (4,420 포인트) 님이 2017년 6월 20일 답변
...