简体   繁体   中英

Android EditText value doesn't show up

I'm trying to retrieve user entered values from EditTexts but nothing is showing up. Here's my code

public class RechargeCarte extends Fragment {
private EditText cardnummer,transfersolde,bannummer;
RequestQueue requestQueue;
String s1,s2,s3;

public RechargeCarte() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_recharge_carte, container, false);
    final Button load = (Button) rootView.findViewById(R.id.btn_load_card);
    cardnummer = (EditText) rootView.findViewById(R.id.et_card_number);
    transfersolde = (EditText) rootView.findViewById(R.id.et_transfer_solde);
    bannummer = (EditText) rootView.findViewById(R.id.et_ban_number);
    requestQueue = Volley.newRequestQueue(getActivity());
    s1 = cardnummer.getText().toString();
    s2 = bannummer.getText().toString();
    s3 = transfersolde.getText().toString();

    load.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
            Log.e("CARDNUMBER", "aaaa"+s1);
            Log.e("BANNUMBER","aaaa"+s2);
            Log.e("TRANSFERT","aaaa"+s3);
        }
    });
    return rootView;
}
}

The Toast does show up but the Log results are always "aaaa" the entered values doesn't show up.

If any one could help.. Thanks :))

You code gets the "" value bcoz its run before clicking ....

Use this it solve your problem.......

load.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
           Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
           s1 = cardnummer.getText().toString();
           s2 = bannummer.getText().toString();
           s3 = transfersolde.getText().toString();
           Log.e("CARDNUMBER", "aaaa"+s1);
           Log.e("BANNUMBER","aaaa"+s2);
           Log.e("TRANSFERT","aaaa"+s3);
        }
    });

enjoy coding........

You have to get the EditText widgets texts when you click on the load button, ie:

load.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
        s1 = cardnummer.getText().toString();
        s2 = bannummer.getText().toString();
        s3 = transfersolde.getText().toString();
        Log.e("CARDNUMBER", "aaaa"+s1);
        Log.e("BANNUMBER","aaaa"+s2);
        Log.e("TRANSFERT","aaaa"+s3);
    }
});

Try like this..
According to Activity Life Cycle, onCreate() method is only run when the Actviity is first created, you may choose to put code in load.setOnClickListener

  load.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
    s1 = cardnummer.getText().toString();
    s2 = bannummer.getText().toString();
    s3 = transfersolde.getText().toString();
            Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
            Log.e("CARDNUMBER", "aaaa"+s1);
            Log.e("BANNUMBER","aaaa"+s2);
            Log.e("TRANSFERT","aaaa"+s3);
        }
    });

You can get values from EditText only if you call method to getText() on Button click.

Like you need to replace your code as below:

 load.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
             s1 = cardnummer.getText().toString();
             s2 = bannummer.getText().toString();
             s3 = transfersolde.getText().toString();
            Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
            Log.e("CARDNUMBER", "aaaa"+s1);
            Log.e("BANNUMBER","aaaa"+s2);
            Log.e("TRANSFERT","aaaa"+s3);
        }
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM