【问题标题】:why is 'headlines.add(xpp.nextText());' is giving me an error?为什么是'headlines.add(xpp.nextText());'给我一个错误?
【发布时间】:2013-02-19 06:30:46
【问题描述】:

我是 java 编程新手。

只是想弄清楚为什么我的代码不起作用。

boolean insideItem = false;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT){
    if (eventType == XmlPullParser.START_TAG){
        if (xpp.getName().equalsIgnoreCase("item")){
            insideItem = true;      
} else if (xpp.getName().equalsIgnoreCase("title")) {
    if (insideItem)
        headlines.add(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("link")) {
    if (insideItem)
        links.add(xpp.nextText());**boolean insideItem = false;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT){
    if (eventType == XmlPullParser.START_TAG){
        if (xpp.getName().equalsIgnoreCase("item")){
            insideItem = true;      
} else if (xpp.getName().equalsIgnoreCase("title")) {
    if (insideItem)
        headlines.add(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("link")) {
    if (insideItem)
        links.add(xpp.nextText());

它给了我以下错误:

类型List中的add(capture#3-of ?)方法不适用于参数(String)

知道如何解决这个问题吗? 有人可以向我解释为什么它不起作用吗?

编辑:

这是整个 listActivity 代码:

public class Main_Menu extends ListActivity {

List<?> headlines;
List<?> links;

@SuppressWarnings("rawtypes")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main__menu);


headlines = new ArrayList();
links = new ArrayList();

try{
URL url = new URL ("http://feeds.ign.com/ign/all");

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(false);
XmlPullParser xpp = factory.newPullParser();

xpp.setInput(getInputStream(url), "UTF_8");

boolean insideItem = false;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT){
    if (eventType == XmlPullParser.START_TAG){
        if (xpp.getName().equalsIgnoreCase("item")){
            insideItem = true;      
} else if (xpp.getName().equalsIgnoreCase("title")) {
    if (insideItem)
        headlines.add(xpp.nextText());
} else if (xpp.getName().equalsIgnoreCase("link")) {
    if (insideItem)
        links.add(xpp.nextText());
    }
}else if(eventType==XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item")){
    insideItem=false;
}

    eventType = xpp.next();

}   

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

@SuppressWarnings("unchecked")
ArrayAdapter adapter = new ArrayAdapter(this,
    android.R.layout.simple_list_item_1, headlines);

setListAdapter(adapter);
}

【问题讨论】:

    标签: java android eclipse methods boolean


    【解决方案1】:

    如果没有看到列表的初始化就很难说,但我猜你需要改变:

    List links = new ArrayList();
    

    到:

    List<String> = new ArrayList<String>();
    

    【讨论】:

      【解决方案2】:

      问:这是什么:**boolean insideItem = false;???

      这是 XmlPullParser 的文档:

      * http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html

      如果当前事件是 START_TAG 则如果下一个元素是 TEXT 则 返回元素内容,或者如果下一个事件是 END_TAG 则为空 返回字符串,否则抛出异常。

      我怀疑您只是在提取一个并非碰巧是文本元素的元素。

      查看链接上的示例代码,并考虑相应地重构您的代码。

      恕我直言...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 2017-12-17
        • 2013-11-14
        • 1970-01-01
        • 1970-01-01
        • 2021-10-15
        相关资源
        最近更新 更多