如何显示仅包含数组列表对象中的一项的微调器?
how to show spinner with only one item from array list object?
我有带有名称和 ID 的 pojo,并且 pojo 设置为数组列表,现在我只想从数组列表中替换名称。
如何实现???
我需要将名称和 ID 都存储在数组列表中,但在微调器中只显示名称
我会建议你在询问之前查看 android 开发者网站或搜索 google.. 无论如何你的代码离正确不远,也许它会工作,但在你的代码中 secretQuestionsArrayList
为空,没有数据。请先填充您的 arrayList,然后将其传递给适配器。在这种情况下,您将在微调器中看到项目
编辑:
如果你想得到前任。 secretQuestionsArrayList
中的字符串 属性 然后您需要获取 属性 并将其添加到新列表中,该列表将仅包含 secretQuestionsArrayList
中的字符串属性,然后传递该列表到适配器
试试这个
像这样创建一个 Pojo class
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) {
}
});
这是你的 SecretQuestion
的 pojo class
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);
编辑
questionSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
String Questionname = questionSpinner.getSelectedItem().toString();
String Id = secretQuestionsArrayList.get(position).getId();
Log.i("Name"," : "+ Questionname);
Log.i("Id"," : "+ Id);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
我有带有名称和 ID 的 pojo,并且 pojo 设置为数组列表,现在我只想从数组列表中替换名称。
如何实现???
我需要将名称和 ID 都存储在数组列表中,但在微调器中只显示名称
我会建议你在询问之前查看 android 开发者网站或搜索 google.. 无论如何你的代码离正确不远,也许它会工作,但在你的代码中 secretQuestionsArrayList
为空,没有数据。请先填充您的 arrayList,然后将其传递给适配器。在这种情况下,您将在微调器中看到项目
编辑:
如果你想得到前任。 secretQuestionsArrayList
中的字符串 属性 然后您需要获取 属性 并将其添加到新列表中,该列表将仅包含 secretQuestionsArrayList
中的字符串属性,然后传递该列表到适配器
试试这个
像这样创建一个 Pojo class
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) {
}
});
这是你的 SecretQuestion
的 pojo classpublic 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);
编辑
questionSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
String Questionname = questionSpinner.getSelectedItem().toString();
String Id = secretQuestionsArrayList.get(position).getId();
Log.i("Name"," : "+ Questionname);
Log.i("Id"," : "+ Id);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});