无法读取Android中的ArrayList

时间:2014-08-29 17:01:36

标签: android arraylist

我将ArrayList传递给另一个方法,我只想读出列表中的特定字符串。

public void pruefeWerHat(ArrayList<Teilnehmer> test){

        System.out.println(test);

我在LogCat中得到了这个

  

&#34; 1 PeterPan 0 0,2 Hansi 0 0&#34;

现在我只想使用该名称,但如果我说(在sysout之后)

  

String name = test.get(1);

他说的问题是,他无法从Teilnehmer转换为String。我也测试了Teilnehmer.get(1),但它既没有工作。

4 个答案:

答案 0 :(得分:0)

当你打印测试时,调用toString函数,所以在你的代码中使用它

String name = test.get(1).toString();

答案 1 :(得分:0)

get(int index)可用的ArrayList方法返回类型E。在这种情况下,它返回类型Teilnehmer,它显然不是String。您可以尝试将Teilnehmer(虽然可能不合适)强制转换为String,或者只是调用继承自类型.toString()的{​​{1}}方法(例如; test.get(1).toString()) 。或者,如果需要,调用返回String的方法。 test.get(1).getNameAsString();

允许在System.out.println(Teilnehmer)中调用类型的原因是println调用对象的字符串表示形式:

Object

答案 2 :(得分:0)

Teilnehmer的成员是什么?

您需要使用类似

的内容

string name =(Teilnehmer)test [1] .Name

其中Name是您要提取的字段

答案 3 :(得分:0)

当你这样做时

的System.out.println(测试);

自动使用toString()方法。此方法位于Object类中,因此java中的所有对象都可以调用此方法。

当你这样做时

String name = test.get(1);

toString()方法不是自己调用的,你必须自己调用它。为此,只需使用

String name = test.get(1).toString();

此外,如果要更改打印内容,可以覆盖类中的toString()方法。

@Overwrite
public String toString() {
    String stringToPrint = "This string will be printed";
    return stringToPrint;
}

现在你做的时候

的System.out.println(测试);

而不是看到“1 PeterPan 0 0,2 Hansi 0 0”,你会看到“这个字符串将被打印”(或者你选择在你的toString()实现中添加的任何内容。