Reputation: 15
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
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
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
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
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