Java RecyclerView未显示-Android

Java RecyclerView未显示-Android,java,android,json,android-studio,Java,Android,Json,Android Studio,我在Android中的RecyclerView有一些问题。当我运行项目时,没有显示,只有一个白色屏幕。请帮忙 主要活动代码: public class MainActivity extends AppCompatActivity { RecyclerView mRecyclerView; private RecyclerView.LayoutManager mLayoutManager; private MyAdapter mViewAdapter; List<News> ne

我在Android中的RecyclerView有一些问题。当我运行项目时,没有显示,只有一个白色屏幕。请帮忙

主要活动代码:

public class MainActivity extends AppCompatActivity {


RecyclerView mRecyclerView;
private RecyclerView.LayoutManager mLayoutManager;
private MyAdapter mViewAdapter;

List<News> news_list = new ArrayList<>();

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


    new ParseNewsJSON().execute();

    mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
    mRecyclerView.setHasFixedSize(true);
    //mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    mViewAdapter= new MyAdapter(news_list);
    mRecyclerView.setAdapter(mViewAdapter);

}

}
我读过一些文章,但它们并没有解决我的问题

activity_main.xml:

android:layout\u width=“match\u parent” android:layout\u height=“match\u parent” xmlns:android=”http://schemas.android.com/apk/res/android" xmlns:app=”http://schemas.android.com/apk/res-auto">

card_layout.xml:

xmlns:android=”http://schemas.android.com/apk/res/android"
xmlns:app=”http://schemas.android.com/apk/res-auto"
android:id=“@+id/card\u视图”
android:layout\u width=“匹配父项”
android:layout_marginTop=“15dp”
android:layout_height=“200dp”
应用程序:cardCornerRadius=“25dp”
>

我认为问题在于您没有在
新闻列表中添加任何数据
ArrayList
检查
ParseNewsJSON
onPostExecute()方法

ParseNewsJSON
中进行更改,如下面的代码所示

@Override
protected void onPostExecute(String s) {

    try {
        JSONObject jsonObject = new JSONObject(result);

        JSONArray jsonArray = jsonObject.getJSONArray("articles");

        for(int i = 0; i<jsonArray.length(); i++){

            News news = new News();

            news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));

           // article_heading.add(jsonArray.getJSONObject(i).optString("title"));


            Log.d("news_JSON", article_heading.toString());

            Log.d("news", news.getHeading().toString());
            news_list.add(news);

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
    mViewAdapter= new MyAdapter(news_list);
    mRecyclerView.setAdapter(mViewAdapter);
    mViewAdapter.notifyDataSetChanged().
    super.onPostExecute(s);
}
@覆盖
受保护的void onPostExecute(字符串s){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray JSONArray=jsonObject.getJSONArray(“文章”);
对于(int i=0;i您必须在
ParseNewsJSON
类的
onPostExecute()
中的“news\u列表”中添加值,然后通知适配器

@Override
protected void onPostExecute(String s) {

            try {
                JSONObject jsonObject = new JSONObject(result);
                JSONArray jsonArray = jsonObject.getJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {

                    News news = new News();
                    news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));

                    news_list.add(news);
                    Log.d("news_JSON", article_heading.toString());

                    Log.d("news", news.getHeading().toString());
                }

                mViewAdapter.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            super.onPostExecute(s);
        }
@覆盖
受保护的void onPostExecute(字符串s){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray JSONArray=jsonObject.getJSONArray(“文章”);
for(int i=0;i
将解析数据添加到
onPostExecute()中的arraylist中,并通知适配器

@Override
protected void onPostExecute(String s) {

            try {
                JSONObject jsonObject = new JSONObject(result);
                JSONArray jsonArray = jsonObject.getJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {
                    News news = new News();
                    news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));
                    news_list.add(news);                       
                }
                mViewAdapter.notifyDataSetChanged();//add this line
            } catch (JSONException e) {
                e.printStackTrace();
            }
            super.onPostExecute(s);
        }
@覆盖
受保护的void onPostExecute(字符串s){
试一试{
JSONObject JSONObject=新JSONObject(结果);
JSONArray JSONArray=jsonObject.getJSONArray(“文章”);
for(int i=0;i
在主活动中

mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
mRecyclerView.setHasFixedSize(true);
//mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setLayoutManager( new LinearLayoutManager(getApplicationContext()));
mViewAdapter= new MyAdapter(new ArrayList<News>);
mRecyclerView.setAdapter(mViewAdapter);
}

适配器中的add方法

 public void addItems(List<News> items){
        if ( items != null && items.size() > 0 ) {
            for (int i = 0; i < items.size(); i++) {
                newsArticleList.add(items.get(i));
                notifyItemInserted(newsArticleList.size() - 1);
            }
        }
    }
公共无效附加项(列表项){
if(items!=null&&items.size()>0){
对于(int i=0;i
在此处添加布局文件欢迎来到StackOverflow。请浏览这两页,您不必将所有文件都放在此处。如果您的示例清晰、简短,则获得好答案的机会更大。@LokeshDesai donenews\u列表为空。@TechnoStorm您的注释将任何数据添加到您的新闻列表中
@Override
protected void onPostExecute(String s) {

    try {
        JSONObject jsonObject = new JSONObject(result);

        JSONArray jsonArray = jsonObject.getJSONArray("articles");

        for(int i = 0; i<jsonArray.length(); i++){

            News news = new News();

            news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));

           // article_heading.add(jsonArray.getJSONObject(i).optString("title"));


            Log.d("news_JSON", article_heading.toString());

            Log.d("news", news.getHeading().toString());
            news_list.add(news);

        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
    mViewAdapter= new MyAdapter(news_list);
    mRecyclerView.setAdapter(mViewAdapter);
    mViewAdapter.notifyDataSetChanged().
    super.onPostExecute(s);
}
@Override
protected void onPostExecute(String s) {

            try {
                JSONObject jsonObject = new JSONObject(result);
                JSONArray jsonArray = jsonObject.getJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {

                    News news = new News();
                    news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));

                    news_list.add(news);
                    Log.d("news_JSON", article_heading.toString());

                    Log.d("news", news.getHeading().toString());
                }

                mViewAdapter.notifyDataSetChanged();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            super.onPostExecute(s);
        }
@Override
protected void onPostExecute(String s) {

            try {
                JSONObject jsonObject = new JSONObject(result);
                JSONArray jsonArray = jsonObject.getJSONArray("articles");
                for (int i = 0; i < jsonArray.length(); i++) {
                    News news = new News();
                    news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));
                    news_list.add(news);                       
                }
                mViewAdapter.notifyDataSetChanged();//add this line
            } catch (JSONException e) {
                e.printStackTrace();
            }
            super.onPostExecute(s);
        }
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
mRecyclerView.setHasFixedSize(true);
//mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mRecyclerView.setLayoutManager( new LinearLayoutManager(getApplicationContext()));
mViewAdapter= new MyAdapter(new ArrayList<News>);
mRecyclerView.setAdapter(mViewAdapter);
@Override
protected void onPostExecute(String s) {

 try {
        JSONObject jsonObject = new JSONObject(result);

        JSONArray jsonArray = jsonObject.getJSONArray("articles");

        for(int i = 0; i<jsonArray.length(); i++){

        news_list.add(jsonArray.getJSONObject(i));
 news.setHeading(String.valueOf(article_heading.add(jsonArray.getJSONObject(i).optString("title"))));

    //article_heading.add(jsonArray.getJSONObject(i).optString("title"))

           Log.d("news_JSON", article_heading.toString());
            Log.d("news", news.getHeading().toString());
        }
mViewAdapter.add(news_list);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    super.onPostExecute(s);
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder viewHolder, final int position) {
    if (viewHolder instanceof ViewHolder){
        ViewHolder holder = (ViewHolder) viewHolder;
        holder.displayDetails(newsArticleList.get(position));
    }
 public void addItems(List<News> items){
        if ( items != null && items.size() > 0 ) {
            for (int i = 0; i < items.size(); i++) {
                newsArticleList.add(items.get(i));
                notifyItemInserted(newsArticleList.size() - 1);
            }
        }
    }