【问题标题】:Android cannot be resolved or is not a fieldandroid无法解析或不是字段
【发布时间】:2014-04-03 05:08:46
【问题描述】:

好的,所以在您开始陈述之前,请环顾四周,因为您的标题与此处提出的许多问题相符。在那种情况下,你是对的,但是......我在这些问题上尝试的每一件事都对我没有帮助。

所以我实际上是在尝试为 Android 设备构建一个 RssFeed 应用程序(仍在学习)。 请注意,我的问题出现在 MainActivity 中。我所有的类、xml 和其他内容都正确编码,没有问题或错误。人们说您应该删除包含“android.r”的导入,我已经查看并没有找到任何包含上述引用的导入。

我的 MainActivity 代码:

package com.ascendapps.licknriff;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.ascendapps.licknriff.R;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        try {

            RssReader rssReader = new RssReader("http://www.licknriff.com/feed/");
            ListView Items = (ListView)findViewById(R.id.listView1);
            // create a list adapter
            ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this.android.R.layout.simple_list_item_1, RssReader.getItems());
            // --
            Items.setAdapter(adapter);
            // --
            Items.setOnItemClickListener(new ListListener(RssReader.getItems(), this));     }catch (Exception e){
            Log.e("SimpleRssReader", e.getMessage());

        }
    }
}

【问题讨论】:

  • 删除this.android.R.layout.simple_list_item_1并使用android.R.layout.simple_list_item_1

标签: java android class


【解决方案1】:

改变这个:

ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this.android.R.layout.simple_list_item_1, RssReader.getItems());

到这里:

ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this, android.R.layout.simple_list_item_1, RssReader.getItems());

this 应在 ArrayAdapter 类的构造函数中作为上下文传递。

【讨论】:

    【解决方案2】:

    替换

    ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this.android.R.layout.simple_list_item_1, RssReader.getItems());
    

    ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this, android.R.layout.simple_list_item_1, RssReader.getItems());
    

    android 是 Android R 类的命名空间。它不属于您的活动类。

    第一个参数是Context 类型,因此您的活动是一个合适的参数,因为它继承自Context

    【讨论】:

    • this 必须作为上下文传递。检查 ArrayAdapter 构造函数。
    【解决方案3】:

    你有一个句号,但你需要一个逗号,在this之后 -

    // ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(
    //     this.android.R.layout.simple_list_item_1, RssReader.getItems());
    ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(
        this, android.R.layout.simple_list_item_1, RssReader.getItems());
    

    【讨论】:

    • this 必须作为上下文传递。检查 ArrayAdapter 构造函数。
    【解决方案4】:

    我认为你有拼写错误。编写代码时,您只需键入 .(点)而不是 ','(逗号)。只需在this 之后将. 替换为,,如下所示,

    ArrayAdapter<RssItem> adapter = new ArrayAdapter<RssItem>(this, android.R.layout.simple_list_item_1, RssReader.getItems());
    

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 2014-01-05
      相关资源
      最近更新 更多