Android 如何从数组列表对象中仅显示一项微调器?
我有一个名为id的pojo,pojo设置为arraylist,现在我只想从数组列表中替换名称 如何实现这一点Android 如何从数组列表对象中仅显示一项微调器?,android,android-spinner,Android,Android Spinner,我有一个名为id的pojo,pojo设置为arraylist,现在我只想从数组列表中替换名称 如何实现这一点 我需要在arraylist中存储姓名和id,但在spinner中只显示姓名我建议您在询问之前查看android开发者网站或搜索谷歌。。不管怎么说,您的代码离正确不远,也许它会工作,但在您的代码中,secretQuestionsArrayList是空的,没有数据。请先填充arrayList,然后将其传递给适配器。在这种情况下,您将在微调器中看到项目 编辑: 如果要从SecretQuesti
我需要在arraylist中存储姓名和id,但在spinner中只显示姓名我建议您在询问之前查看android开发者网站或搜索谷歌。。不管怎么说,您的代码离正确不远,也许它会工作,但在您的代码中,secretQuestionsArrayList是空的,没有数据。请先填充arrayList,然后将其传递给适配器。在这种情况下,您将在微调器中看到项目 编辑: 如果要从SecretQuestionsArray列表中获取ex.String属性,则需要获取该属性并将其添加到新列表中,该列表将仅包含SecretQuestionsArray列表中的字符串属性,然后将该列表传递给适配器
ArrayList<SecretQuestion> secretQuestionsArrayList = new ArrayList<>();
ArrayList<String> secretQueName = new ArrayList<>();
for (int i = 0; i < secretQuestionsArrayList.size(); i++) {
Log.i("Secrete Name"," : "+ secretQuestionsArrayList.get(i).getName());
secretQueName.add(secretQuestionsArrayList.get(i).getName());
}
arrayAdapter = new ArrayAdapter(activity, android.R.layout.simple_spinner_item, secretQueName);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
questionSpinner.setAdapter(arrayAdapter);
像这样创建一个Pojo类
public class POJO
{
String id,name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ArrayList<POJO>pojoArrayList= new ArrayList<>();
for (int i=0;i<20;i++){
POJO pojo= new POJO();
pojo.setId(i+"");
pojo.setName("name "+i);
pojoArrayList.add(pojo);
}
String []SpnName=new String[pojoArrayList.size()];
String []SpnID=new String[pojoArrayList.size()];
for (int i=0;i<pojoArrayList.size();i++){
SpnName[i]=pojoArrayList.get(i).getName();
SpnID[i]=pojoArrayList.get(i).getId();
}
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, SpnName);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "Cliked Id :"+SpnID[i], Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
然后像这样将数据名称添加到微调器中
public class POJO
{
String id,name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ArrayList<POJO>pojoArrayList= new ArrayList<>();
for (int i=0;i<20;i++){
POJO pojo= new POJO();
pojo.setId(i+"");
pojo.setName("name "+i);
pojoArrayList.add(pojo);
}
String []SpnName=new String[pojoArrayList.size()];
String []SpnID=new String[pojoArrayList.size()];
for (int i=0;i<pojoArrayList.size();i++){
SpnName[i]=pojoArrayList.get(i).getName();
SpnID[i]=pojoArrayList.get(i).getId();
}
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, SpnName);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "Cliked Id :"+SpnID[i], Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
就像这是你的pojo类秘密问题
public class SecretQuestion{
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("name")
@Expose
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
获取适配器的唯一名称:
secretQuestionsArrayList.getName()
完整代码:
ArrayList<SecretQuestion> secretQuestionsArrayList = new ArrayList<>();
arrayAdapter = new ArrayAdapter(activity, android.R.layout.simple_spinner_item, secretQuestionsArrayList.getName());
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
questionSpinner.setAdapter(arrayAdapter);
试试这个
ArrayList<SecretQuestion> secretQuestionsArrayList = new ArrayList<>();
ArrayList<String> secretQueName = new ArrayList<>();
for (int i = 0; i < secretQuestionsArrayList.size(); i++) {
Log.i("Secrete Name"," : "+ secretQuestionsArrayList.get(i).getName());
secretQueName.add(secretQuestionsArrayList.get(i).getName());
}
arrayAdapter = new ArrayAdapter(activity, android.R.layout.simple_spinner_item, secretQueName);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
questionSpinner.setAdapter(arrayAdapter);
编辑
secretQuestionsArrayList.getName;不可用您能否使用SecretQuestion类更新您的问题,所以我可以理解@hemavathined的唯一名称spinner@Hemavathi检查代码,您将只获得名称spinner@NileshRathod杰伊dwarkadhish@Hemavathi很高兴为您提供帮助。选择问题时,我需要从arraylist获取Id并将其存储在string@Hemavathi如果选择一个问题,您将获得ID和名称。请检查我的编辑答案。@Hemavathi如果您正在解决问题,请选择正确的ans。@Hemavathi谢谢,很高兴帮助您。