如何在另一个类中显示微调器中的值?

时间:2017-01-14 17:31:39

标签: java android spinner

我想将 MainActivity.java 中的值传递给 Name.java 并访问 Name.java 中的值并且想要将它显示在微调器中。

我该怎么做呢?并且还希望在从微调器中选择值时烘烤名称。请帮助我。

提前致谢。

Name.Java

public class Name {

    private String name;

    public Name(){

    }

    public Name(String name) {
        this.name =  name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

MainActivity.Java

public class MainActivity extends AppCompatActivity {

    ArrayList<Name> names = new ArrayList<>();
    Name name = new Name();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        names = new ArrayList<>();

        Name name = new Name();
        name.setName("dog");
        name.setName("cat");
        name.setName("cow");

        names.add(name);

        Spinner spinner = (Spinner) findViewById(R.id.spinner);

        spinner.setAdapter(new ArrayAdapter<Name>(this, android.R.layout.simple_spinner_dropdown_item, names));

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Name value = (Name) parent.getItemAtPosition(position);
              Toast.makeText(MainActivity.this, "value is "+value, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

    }
}

1 个答案:

答案 0 :(得分:0)

覆盖toString内的Name.java方法并返回name

public class Name {

    ...
    @Override
    public String toString(){ 
      return name;  
    }
}

这有助于显示Spinner

中的项目

您需要向ArrayList添加项目。目前,您只向ArrayList添加了一个项目。

...
names = new ArrayList<>();

names.add(new Name("dog"));
names.add(new Name("cat"));
names.add(new Name("cow"));

Spinner spinner = (Spinner) findViewById(R.id.spinner);
...