我想将 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) {
}
});
}
}
答案 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);
...