Walid Braham
Walid Braham

Reputation: 15

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 :))

Upvotes: 1

Views: 59

Answers (4)

Android Geek
Android Geek

Reputation: 9225

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);
        }
    });

Upvotes: 0

sushildlh
sushildlh

Reputation: 9056

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........

Upvotes: 1

Saurabh Vardani
Saurabh Vardani

Reputation: 1861

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);
        }
    });

Upvotes: 0

Seishin
Seishin

Reputation: 1477

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

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);
    }
});

Upvotes: 0

Related Questions