微调器项未分配给字符串变量,在android中为null
我面临的问题是如何从微调器中获取值以存储在字符串变量中并不断获取null。我创建了全局变量以在外部函数中访问它们的值- 这是我的密码-微调器项未分配给字符串变量,在android中为null,android,null,spinner,android-spinner,Android,Null,Spinner,Android Spinner,我面临的问题是如何从微调器中获取值以存储在字符串变量中并不断获取null。我创建了全局变量以在外部函数中访问它们的值- 这是我的密码- package com.shaikhsakib.mycustomspinner; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; impo
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
}
}
package com.shaikhsakib.mycustomspinner;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.Button;
导入android.widget.Spinner;
导入android.widget.TextView;
公共类MainActivity扩展AppCompativeActivity实现AdapterView.OnItemSelectedListener{
字符串[]国家名称={“印度卢比”、“人民币”、“澳元”、“欧元”、“美元”、“新西兰元”};
int flags[]={R.drawable.india,R.drawable.china,R.drawable.australia,R.drawable.portugel,R.drawable.newèzealand};
私有字符串from,to=“”;
私人旋转器旋转,旋转2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取Spinner实例并在其上应用OnItemSelectedListener
spin=(微调器)findViewById(R.id.fromSpinner);
TextView from=(TextView)findViewById(R.id.fromLabel);
spin2=(微调器)findViewById(R.id.toSpinner);
TextView to=(TextView)findViewById(R.id.toLabel);
按钮btn=(按钮)findViewById(R.id.Button);
spin.setOnItemSelectedListener(此);
spin2.setOnItemSelectedListener(此);
CustomAdapter CustomAdapter=新的CustomAdapter(getApplicationContext(),标志,国家名称);
spin.setAdapter(customAdapter);
spin2.setAdapter(customAdapter);
}
公共void转换(视图){
spin.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
from=parent.getItemAtPosition(1.toString();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
spin2.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
from=parent.getItemAtPosition(1.toString();
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
TextView结果=(TextView)findViewById(R.id.result);
result.setText(“From值:”+From);
}
//正在执行的操作已选定,但未选定
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
//gendervalue=parent.getItemAtPosition(position.toString();
//Object item=parent.getItemAtPosition(位置);
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
}
我已经从中创建了全局变量,get assigned item将微调器值选为字符串,但仍然得到“from value:null”
试试这个
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) {
}
});
spin.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串var=countryNames[position];
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
使用
而不是
from = parent.getItemAtPosition(1).toString();
convert(查看)
parent.getItemAtPosition(1).toString()应该是parent.getItemAtPosition(position).toString()
你能分享一下CustomAdapter的代码吗?你的答案救了我的命!!
from = parent.getItemAtPosition(position).toString();
from = parent.getItemAtPosition(1).toString();