私はすべての方法ログインに戻す]ボタンを押すと、フィールドが挿入され、前のユーザーデータを表示します

ファビオ・ドゥアルテ:

私は、JavaでのAndroidアプリケーションを作ってるんです。このアプリでの問題は、私は、メインのフラグメントを押し、戻るボタンにいるとき、私は(たまたま)、それは、ログインに戻りたいが、ユーザー名とパスワードのフィールドは、最後のユーザからのデータを表示し、私が欲しいということですこれらのフィールドは、アプリが再起動された場合のように、空表示します。

これは私のログインクラスの私のloginuser関数の内部です。

public void loginUser() {

        String url = MeuSingleton.servidor + "/login";

        loginemail = email.getText().toString().trim();
        loginpass = pass.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            if (response.length() == 9){
                                Toast.makeText(Login.this, "Login efectuado com sucesso!", Toast.LENGTH_SHORT).show();
                                Intent i = new Intent(Login.this, MainActivity.class);
                                startActivity(i);
                            } else {
                                mostrarErro(getString(R.string.tituloerro), getString(R.string.login_errado));
                            }
                        } catch (Exception e) {
                            mostrarErro(getString(R.string.tituloerro), getString(R.string.backenderro));
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        mostrarErro(getString(R.string.tituloerro), getString(R.string.interneterro));
                    }
                }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> map = new HashMap<String, String>();
                map.put("email", loginemail);
                map.put("password", loginpass);
                return map;
            }
        };
        MeuSingleton.getInstance(this).addToRequestQueue(stringRequest);
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(350, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    }

そして、これは私の主な活動のクラスです。

public class MainActivity extends AppCompatActivity implements
        NavigationView.OnNavigationItemSelectedListener{

    MainFragment mainFragment;
    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;
    DrawerLayout drawer;
    NavigationView navigationView;
    ActionBarDrawerToggle toggle;
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        navigationView = findViewById(R.id.nested);
        navigationView.setNavigationItemSelectedListener(this);

        drawer = findViewById(R.id.drawer);
        toggle = new ActionBarDrawerToggle(this,drawer,toolbar,R.string.open,R.string.close);
        drawer.addDrawerListener(toggle);
        toggle.setDrawerIndicatorEnabled(true);
        toggle.syncState();

        mainFragment = new MainFragment();
        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.fragmentContainer,mainFragment);
        fragmentTransaction.commit();// add the fragment

    }

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        closeDrawer();
        if(menuItem.getItemId() == R.id.submeteralerta){
            loadFragment(new InsAlertaFragment());
        }
        if(menuItem.getItemId() == R.id.veralertas){
            loadFragment(new SecondFragment());
        }
        if(menuItem.getItemId() == R.id.logout){
            finish();
        }
        if(menuItem.getItemId() == R.id.sobremim){
            loadFragment(new SobreMimFragment());
        }
        if(menuItem.getItemId() == R.id.ajuda){
            loadFragment(new AjudaFragment());
        }
        return true;
    }

    private void loadFragment(Fragment secondFragment) {
        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.fragmentContainer,secondFragment);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
    }

    private void closeDrawer() {
        drawer.closeDrawer(GravityCompat.START);
    }
}

そして最後に、私は、プレスバックにしたいとログインに行くところで私のメインの断片、:

public class MainFragment extends Fragment {

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_main,container,false);
        return view;
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
    }


}

助けてくれてありがとう!

タイラーV:

あなたが戻ったときに空のテキストフィールドを持つログイン活動をしたい場合は、起動する前に、あなただけのテキストフィールドをクリアできましたMainActivity例えば:

Toast.makeText(Login.this, "Login efectuado com sucesso!", Toast.LENGTH_SHORT).show();
email.setText("");
pass.setText("");
Intent i = new Intent(Login.this, MainActivity.class);
startActivity(i);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=345361&siteId=1