Java RecyclerView未显示-Android
我在Android中的RecyclerView有一些问题。当我运行项目时,没有显示,只有一个白色屏幕。请帮忙 主要活动代码: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
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);
}
}
}