【问题标题】:In ListItem cannot be applied to java.lang.String android在 ListItem 中不能应用于 java.lang.String android
【发布时间】:2017-11-02 16:24:06
【问题描述】:

在这种情况下,当我尝试将字符串添加到我的 ListItem 时遇到问题,我按照此 tutorial 进行操作。我完全按照视频告诉我的做,但它仍然让我收到错误“在 ListItem 中不能应用于 java.lang.String”,我不明白为什么。这是我的代码:

public class ListScientistsFragment extends Fragment {


private final String TAG = "ListScientistsFragment";
private static final String URL_DATA = "http://jsonplaceholder.typicode.com/photos";

private String[] scientistNames = {"Marie Curie","Thomas Edison","Albert Einstein","Michael Faraday","Galileo Galilei",
        "Stephen Hawking","Johannes Kepler","Issac Newton","Nikola Tesla"};
private String[] birthYear = {"1867","1847","1879","1791","1564","1942","1571","1643","1856"};
private String[] deathYear = {"1934","1931","1955","1867","1642","Present","1630","1727","1943"};
private int[] image = {R.drawable.curie,R.drawable.edison,R.drawable.einstein,R.drawable.faraday,R.drawable.galileo,R.drawable.hawking,R.drawable.kepler,R.drawable.newton,R.drawable.tesla};

private ArrayList<Scientist> mScientists;
private RecyclerView mScientistRecyclerView;
private List<LauncherActivity.ListItem> listItems;
private ScientistAdapter mAdapter;
public ImageView mImageView;

@Override
public void onCreate(Bundle savedInstanceState) {
    mScientists = new ArrayList<>();
    listItems = new ArrayList<>();
    for(int i =0;i<scientistNames.length;i++){
        Scientist s = new Scientist();
        s.setName(scientistNames[i]);
        s.setBirthYear(birthYear[i]);
        s.setDeathYear(deathYear[i]);
        mScientists.add(s);
    }
    loadImagesToView();
    super.onCreate(savedInstanceState);
}

private void loadImagesToView() {
    final ArrayList<String> list = new ArrayList<String>();
    StringRequest stringRequest = new StringRequest(Request.Method.GET,
            URL_DATA,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONArray jsonarray = new JSONArray(response);
                        for(int i=0;i<jsonarray.length();i++) {
                            JSONObject o = jsonarray.getJSONObject(i);
//HERE'S MY PROBLEM ------------------------------------
                                LauncherActivity.ListItem item;
                                item = new LauncherActivity.ListItem(
                                        o.getString("url")
                                );
//--------------------------------------------
                            listItems.add(item);
                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }
    );

我只想添加从特定 URL_DATA 获得的每个“URL”,这是一个带有其他字段的 JSON,但我需要专门的 url。我将把它加载到 RecyclerView 中。希望你能理解。

【问题讨论】:

    标签: java android json android-recyclerview listitem


    【解决方案1】:

    类 LauncherActivity.ListItem 没有带字符串参数的构造函数。 https://developer.android.com/reference/android/app/LauncherActivity.ListItem.html

    【讨论】:

    • 我只是想出了问题,反正你是对的,谢谢。
    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 2018-07-17
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    相关资源
    最近更新 更多