Reputation: 109
I am facing problem to get value from Spinners to store in an String variable and keep getting null. I have created global variable to acces their value in an outer function -
Here is my code -
package com.shaikhsakib.mycustomspinner;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
String[] countryNames={"INR","CNY","AUD","EUR","USD","NZD"};
int flags[] = {R.drawable.india, R.drawable.china, R.drawable.australia, R.drawable.portugel, R.drawable.new_zealand};
private String from, to = "";
private Spinner spin, spin2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Getting the instance of Spinner and applying OnItemSelectedListener on it
spin = (Spinner) findViewById(R.id.fromSpinner);
TextView from = (TextView) findViewById(R.id.fromLabel);
spin2 = (Spinner) findViewById(R.id.toSpinner);
TextView to = (TextView) findViewById(R.id.toLabel);
Button btn = (Button) findViewById(R.id.button);
spin.setOnItemSelectedListener(this);
spin2.setOnItemSelectedListener(this);
CustomAdapter customAdapter=new CustomAdapter(getApplicationContext(),flags,countryNames);
spin.setAdapter(customAdapter);
spin2.setAdapter(customAdapter);
}
public void convert(View view) {
spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
from = parent.getItemAtPosition(1).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spin2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
from = parent.getItemAtPosition(1).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
TextView result = (TextView) findViewById(R.id.result);
result.setText("From value: " + from );
}
//Performing action onItemSelected and onNothing selected
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//gendervalue = parent.getItemAtPosition(position).toString();
// Object item = parent.getItemAtPosition(position);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
I have created global variables from, to which get assigned item selected spinner values as String but still getting "From value: null".
Upvotes: 0
Views: 174
Reputation: 4442
You didn't call convert(View view)
parent.getItemAtPosition(1).toString()
should be parent.getItemAtPosition(position).toString()
Upvotes: 0
Reputation: 2550
Use
from = parent.getItemAtPosition(position).toString();
instead of
from = parent.getItemAtPosition(1).toString();
Upvotes: 0
Reputation: 1
@Override
public void onUserInteraction() {
super.onUserInteraction();
isUserInteracting = true;
}
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView adapterView, View view, int i, long l) {
if (isUserInteracting) {
Toast.makeText(MainActivity.this,
spinnerTitles[i], Toast.LENGTH_SHORT).show();
}
}
@Override
public void onNothingSelected(AdapterView adapterView) {
}
});
Upvotes: 0
Reputation: 3179
try this
spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String var=countryNames[position];
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
Upvotes: 1