微调器项未分配给字符串变量,在android中为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

我面临的问题是如何从微调器中获取值以存储在字符串变量中并不断获取null。我创建了全局变量以在外部函数中访问它们的值-

这是我的密码-

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