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

인텐트(Intent) 조건이 맞으면 다음 화면으로 넘기는 질문이 있습니다.

0 추천

안녕하세요 선배님들 APP 초보 개발자입니다.

다름이 아니라. 안드로이드 ->JSP->MYSQL

안드로이드에서 edittext로 id,pw값을 받고, 로그인 버튼값에 onclick을 취해

String url=""; 선언한 사이트로 들어가 JSP 에서 MYSQL로 DB와 확인을 한후,

로그인이 되었을때 다음 인텐트 화면으로 넘기고 싶습니다.

현재 APP->JSP->MYSQL로 로그인이 완성 되었으며.

로그인이 되었을때만 화면이 다음으로 이동되고싶고,

로그인이 불가능 하면 화면전환을 하면 안되는데.

인텐트를 생성성하고 액티비트를 실행시키는 조건문을 어떻게 해야 할지 잘 모르겟습니다.

다음은 로그인 액티비티(메인) 화면의 소스 구성입니다.

조건을 어떻게 줘야하며, 스타트 액티비티는 어디쪽으로 해야 할까요?

public class MainActivity extends AppCompatActivity {

    EditText et_id,et_pw;
    Button btn_login;
    TextView tv_msg;

    private static String id = "";
    private static String pw = "";
    private static String msgString = null;
    private static boolean isConnected = false;

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

        et_id = (EditText) findViewById(R.id.id);
        et_pw = (EditText) findViewById(R.id.passwd);
 
        tv_msg = (TextView) findViewById(R.id.text_msg);

        final Button btn_login = (Button) findViewById(R.id.loginbtn);
        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                id = et_id.getText().toString();
                pw = et_pw.getText().toString();

                new Handler().post(new Runnable() {
                    @Override
                    public void run() {
                        String url = "url";
                        //url 사이트 표시
                        new MainActivity().connect(url);
                        //url=url.toString();
                        //메인 엑티비티에서 url 연결

                        while (true){
                            if(isConnected) {
                                Toast.makeText(MainActivity.this, msgString, Toast.LENGTH_LONG).show();
                                break;
                               
                            }
                        }


                    }
                });
                //Intent i = new Intent(getApplicationContext(),SecondActivity.class);
                //startActivity(i);
            }

        });
    }
    private void setText(String a){
        tv_msg.setText(a);
    }

    private void connect(String url) {
        new WebConnection().execute(url);
        //
    }
딸기맛존슨 (160 포인트) 님이 2015년 8월 6일 질문
딸기맛존슨님이 2015년 8월 6일 수정

2개의 답변

0 추천
감사합니다!! isconnected 를 생각하고있었는데... ㅠㅠ
딸기맛존슨 (160 포인트) 님이 2015년 8월 6일 답변
딸기맛존슨님이 2015년 8월 6일 수정
이까지가 MAINACTIVITY 소스 입니다!
0 추천
결론은 로그인시 id와 pw를 넣었을때 맞으면 실행 아니면 실패문구가 나오겠군요

isConnected 변수를 잘보시면.. 결국 이 변수로 로그인성공 실패를 사용해요

처음 액티비티 실행시 isConnected = false

로그인버튼을 눌렀을때 id와 pw값을 가져오고
클릭 리스너의 run()에서 url변수에 주소를 넣고

new MainActivity().connect(url);
// MainActivity의 커넥트메서드실행

private void connect(String url) {
        new WebConnection().execute(url);
        //WebConnection클래스 실행
    }
WebConnection클래스 실행하고 연결이되면
isConnected에 true값 반환 -> 결국 성공시 true 실패시 false 그대로.

response값이 리턴되고나면 run메서드로 돌아가서 그 밑의 while문 실행.

if(isConnected){
// 성공시 코드
Intent intent = new intent(MainActivity.this, 로그인완료클래스);
startActivity(intent);

}else{
// 실패시 코드
Toast.makeText(MainActivity.this, "로그인실패 문구", Toast.LENGTH_LONG).show();
}

이렇게 되겠네요
익명사용자 님이 2015년 8월 6일 답변
감사합니다. isconnected가 if조건문으로 후드려 패면 되는군요...
...