package org.ntlab.radishforandroidstudio.cactusClient.views; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import net.arnx.jsonic.JSON; import net.arnx.jsonic.TypeReference; import org.ntlab.radishforandroidstudio.R; import org.ntlab.radishforandroidstudio.cactusClient.Cactus; import org.ntlab.radishforandroidstudio.cactusClient.connections.LoginFragmentConnection; import org.ntlab.radishforandroidstudio.cactusClient.models.account.Account; import org.ntlab.radishforandroidstudio.cactusClient.models.account.URIAddressedAccount; import org.ntlab.radishforandroidstudio.framework.network.CallBack; public class LoginFragment extends BaseFragment { private LoginFragmentConnection connection; private Boolean testFlag = false; //trueにすると、通信せずにインスタンス画面へ遷移します。つまり、通信なしでテストするなら"true"にせい @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.login_fragment, container, false); } @Override public void onStart() { super.onStart(); Button button = (Button) getActivity().findViewById(R.id.signUP1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { replaceFragment(R.id.fragment_place, new SignUpFragment(),true); } }); Button loginButton = (Button) getActivity().findViewById(R.id.login); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EditText userName = (EditText) getActivity().findViewById(R.id.inputUserName); EditText passWord = (EditText) getActivity().findViewById(R.id.checkPassword); // /**************************************************************** if (testFlag) { replaceFragment(R.id.fragment_place, new InstancesFragment(), false); return; } // **********************************************************************/ if (userName.getText().toString().isEmpty()) { Toast.makeText(getActivity(), "ユーザー名が未記入です", Toast.LENGTH_SHORT).show(); return; } else if (passWord.getText().toString().isEmpty()) { Toast.makeText(getActivity(), "パスワードが未記入です", Toast.LENGTH_SHORT).show(); return; } //もらう connection = new LoginFragmentConnection(); connection.setCallBack(new CallBack() { @Override public void onResponse(String response) { //通信した時の処理を書くのだよ URIAddressedAccount lac = JSON.decode(response, new TypeReference<URIAddressedAccount>() { }); Account user = lac.getAccount(); if (user.isLogin()) { Toast.makeText(getActivity(), "ログインに成功しました。", Toast.LENGTH_SHORT).show(); Cactus c = (Cactus) getActivity().getApplication(); c.setMyAccount(user); c.setAddressedAccount(lac); //画面切り替え replaceFragment(R.id.fragment_place, new InstancesFragment(), false); } else { Toast.makeText(getActivity(), "ログインに失敗しました。", Toast.LENGTH_SHORT).show(); } } }); connection.addFormParam("userID", userName.getText().toString()); connection.addFormParam("userPass", passWord.getText().toString()); if (!testFlag) { connection.doPut(); } } }); } }