java - 将 ArrayList<String> 转换为 ArrayList<SomeClass> java

标签 java android arraylist

我已经成功地将某个类的数组列表(在我的例子中是一个扩展 ArrayAdapter<Question> 的类)转换为 ArrayList<String> 。我已通过 android Intent bundle 传递它并通过 getStringArrayList 方法接收。现在我需要将其转换回 ArrayList<Question>设置我的适配器

ArrayList<Question> 转换至ArrayList<String>

       questionlists = task.execute(myitem).get();

        for (Question object : questionlists) 
        {
            strings.add(object != null ? object.toString() : null);
        }
        simpleArray2 = new String[strings.size()];
        strings.toArray(simpleArray2);

转换回 ArrayList<Question>

 List<Question> variable;
 lists = getArguments().getStringArrayList("Question");
     variable = (List<Question>)(List<?>) lists;

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.main_world, container, false);
    ListView lv = (ListView) view.findViewById(R.id.list_sessions);
    final QuestionAdapter adapter = new QuestionAdapter(getActivity(), variable);
    lv.setAdapter(adapter);
    //ArrayAdapter<String> adapter = new ArrayAdapter<String>(  
             //inflater.getContext(), android.R.layout.simple_list_item_1,  
             //lists);  
   // lv.setAdapter(adapter);             
    return view;
}

我添加了一个 try/catch 我的适配器,但收到错误:

java.lang.String 无法转换为 java.com.example.Question。

我做错了什么?是因为我没有先转换回正确的ArrayList吗?

最佳答案

在第一个示例中,您实际上并未将 Question 转换为 String。您正在为 Question 调用 toString() 方法。

例如,

public class Question {

    //instance member
    String question;

    public String toString() {
       return question;
    }
}

为了从 String 转换为 Question,您必须编写一个采用 String 的构造函数或方法> 作为参数并返回一个问题

例如,您可以将此构造函数添加到您的 Question 类中:

public Question(string myQuestion) {
     question = myQuestion;
}

关于java - 将 ArrayList<String> 转换为 ArrayList<SomeClass> java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579740/

相关文章:

java - 泛型与泛型数组列表?

java - 如何在 Java-8 中显示普通纪元 ("CE")?

java - 我想要获得一周的值(value)

java - 数据未传输到新 Activity

java - 第二次解析 XML 文件时出现 XStream ConversionException

java - 即使实现了可比性,也无法将类转换为 java.lang.Comparable

java - 如何忽略 SQL 更新中的列

java - 你能以编程方式访问当前的 Heroku dyno id/name 吗?

java - 媒体播放器无法第二次播放

java - 如何使用 JAVA 从 ArrayList 返回输入