我有pojo的名字和id和pojo设置为arraylist现在我想从数组列表中仅取代名称。
如何实现这个???
我需要在arraylist中存储name和id,但只在spinner中显示名称
答案 0 :(得分:1)
试试这个
像这样创建一个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) {
}
});
答案 1 :(得分:0)
我会建议你检查android开发者网站或搜索谷歌之前询问..无论如何你的代码距离正确不远,也许它会起作用,但在你的代码中,bundle exec bin/delayed_job --number_of_workers=2 start
是空的,没有数据。请首先填充您的arrayList,然后将其传递给适配器。在这种情况下,您将看到微调器中的项目
编辑:
如果你想得到前任。来自secretQuestionsArrayList
的字符串属性然后您需要获取属性并将其添加到新列表中,该列表将仅包含来自secretQuestionsArrayList
的String属性,然后将该列表传递给适配器
答案 2 :(得分:0)
像这是你的秘密问题的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);
答案 3 :(得分:0)
试试这个
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) {
}
});