Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当我需要使用php web服务从数据库返回新闻列表时,不幸的项目停止了_Android - Fatal编程技术网

Android 当我需要使用php web服务从数据库返回新闻列表时,不幸的项目停止了

Android 当我需要使用php web服务从数据库返回新闻列表时,不幸的项目停止了,android,Android,我需要返回一个带有php web服务的新闻列表。但是,当我运行项目并单击go to activity last news按钮时,它会显示此错误 有什么问题?我怎样才能解决这个问题 最新新闻活动: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity

我需要返回一个带有php web服务的新闻列表。但是,当我运行项目并单击go to activity last news按钮时,它会显示此错误

有什么问题?我怎样才能解决这个问题

最新新闻活动:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_last_news);
        PostService postService=new PostService(this);
        postService.getPosts(new IPostService() {
            @Override
            public void OnPostRecived(List<Post> posts) {
                RecyclerView recyclerView=(RecyclerView)findViewById(R.id.lastnews_recycle);
                NewsAdapter newsAdapter=new NewsAdapter(LastNewsActivity.this,posts);
                recyclerView.setLayoutManager(new LinearLayoutManager(LastNewsActivity.this
                ,LinearLayoutManager.VERTICAL,false));
                recyclerView.setAdapter(newsAdapter);
            }
        });
    }
public class PostService {

private Context context;

public PostService(Context context){

    this.context = context;
}

public void getPosts(final IPostService postService){

    JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.GET, "http://192.168.1.2:8080/Test/GetPosts.php", null,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {

                    List<Post> posts=new ArrayList<>();
                    for (int i=0 ; i<response.length();i++){

                        Post post=new Post();
                        try {
                            JSONObject jsonObject=response.getJSONObject(i);
                            post.setTitle(jsonObject.getString("title"));
                            post.setId(jsonObject.getInt("id"));
                            post.setDate(jsonObject.getString("date"));
                            post.setContent(jsonObject.getString("content"));
                            post.setImage(jsonObject.getString("image_url"));
                            posts.add(post);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    postService.OnPostRecived(posts);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(18000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

    Volley.newRequestQueue(context).add(jsonArrayRequest);
}
public class Post {

private int id;
private String PostImageUrl;
private String Title;
private String Content;
private String Date;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getTitle() {
    return Title;
}

public void setTitle(String title) {
    Title = title;
}

public String getContent() {
    return Content;
}

public void setContent(String content) {
    Content = content;
}

public String getDate() {
    return Date;
}

public void setDate(String date) {
    Date = date;
}

public String getImage() {
    return PostImageUrl;
}

public void setImage(String image) {
    PostImageUrl = image;
}
public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.NewsViewHolder> {

private List<Post> posts;
private Context context;

public NewsAdapter( Context context,List<Post> posts ){

    this.posts = posts;
    this.context = context;
}

@Override
public NewsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    return new NewsViewHolder(LayoutInflater.from(context).inflate(R.layout.layout_news,parent,false));

}

@Override
public void onBindViewHolder(NewsViewHolder holder, int position) {

    Post post=posts.get(position);
    holder.Title.setText(post.getTitle());
    holder.Content.setText(post.getContent());
    holder.Date.setText(post.getDate());
    Picasso.with(context).load(post.getImage()).into(holder.Image);

}

@Override
public int getItemCount() {
    return posts.size();
}

public class NewsViewHolder extends RecyclerView.ViewHolder {
    private ImageView Image;
    private TextView Title;
    private TextView Content;
    private TextView Date;

    public NewsViewHolder(View itemview) {
        super(itemview);
        Image = (ImageView) itemview.findViewById(R.id.item_news_image);
        Title = (TextView) itemview.findViewById(R.id.item_news_title);
        Content = (TextView) itemview.findViewById(R.id.item_news_content);
        Date = (TextView) itemview.findViewById(R.id.item_news_date);
    }
}
}

新闻适配器:

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_last_news);
        PostService postService=new PostService(this);
        postService.getPosts(new IPostService() {
            @Override
            public void OnPostRecived(List<Post> posts) {
                RecyclerView recyclerView=(RecyclerView)findViewById(R.id.lastnews_recycle);
                NewsAdapter newsAdapter=new NewsAdapter(LastNewsActivity.this,posts);
                recyclerView.setLayoutManager(new LinearLayoutManager(LastNewsActivity.this
                ,LinearLayoutManager.VERTICAL,false));
                recyclerView.setAdapter(newsAdapter);
            }
        });
    }
public class PostService {

private Context context;

public PostService(Context context){

    this.context = context;
}

public void getPosts(final IPostService postService){

    JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.GET, "http://192.168.1.2:8080/Test/GetPosts.php", null,
            new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {

                    List<Post> posts=new ArrayList<>();
                    for (int i=0 ; i<response.length();i++){

                        Post post=new Post();
                        try {
                            JSONObject jsonObject=response.getJSONObject(i);
                            post.setTitle(jsonObject.getString("title"));
                            post.setId(jsonObject.getInt("id"));
                            post.setDate(jsonObject.getString("date"));
                            post.setContent(jsonObject.getString("content"));
                            post.setImage(jsonObject.getString("image_url"));
                            posts.add(post);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    postService.OnPostRecived(posts);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    });
    jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(18000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

    Volley.newRequestQueue(context).add(jsonArrayRequest);
}
public class Post {

private int id;
private String PostImageUrl;
private String Title;
private String Content;
private String Date;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getTitle() {
    return Title;
}

public void setTitle(String title) {
    Title = title;
}

public String getContent() {
    return Content;
}

public void setContent(String content) {
    Content = content;
}

public String getDate() {
    return Date;
}

public void setDate(String date) {
    Date = date;
}

public String getImage() {
    return PostImageUrl;
}

public void setImage(String image) {
    PostImageUrl = image;
}
public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.NewsViewHolder> {

private List<Post> posts;
private Context context;

public NewsAdapter( Context context,List<Post> posts ){

    this.posts = posts;
    this.context = context;
}

@Override
public NewsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    return new NewsViewHolder(LayoutInflater.from(context).inflate(R.layout.layout_news,parent,false));

}

@Override
public void onBindViewHolder(NewsViewHolder holder, int position) {

    Post post=posts.get(position);
    holder.Title.setText(post.getTitle());
    holder.Content.setText(post.getContent());
    holder.Date.setText(post.getDate());
    Picasso.with(context).load(post.getImage()).into(holder.Image);

}

@Override
public int getItemCount() {
    return posts.size();
}

public class NewsViewHolder extends RecyclerView.ViewHolder {
    private ImageView Image;
    private TextView Title;
    private TextView Content;
    private TextView Date;

    public NewsViewHolder(View itemview) {
        super(itemview);
        Image = (ImageView) itemview.findViewById(R.id.item_news_image);
        Title = (TextView) itemview.findViewById(R.id.item_news_title);
        Content = (TextView) itemview.findViewById(R.id.item_news_content);
        Date = (TextView) itemview.findViewById(R.id.item_news_date);
    }
}
公共类NewsAdapter扩展了RecyclerView.Adapter{ 私人名单员额; 私人语境; 公共新闻适配器(上下文、列表帖子){ 这个.posts=posts; this.context=上下文; } @凌驾 public NewsViewHolder onCreateViewHolder(视图组父级,int-viewType){ 返回新的新闻视图持有者(LayoutInflater.from(context).膨胀(R.layout.layout_news,parent,false)); } @凌驾 BindViewHolder上的公共无效(NewsViewHolder,int位置){ Post Post=posts.get(位置); holder.Title.setText(post.getTitle()); holder.Content.setText(post.getContent()); holder.Date.setText(post.getDate()); 毕加索.with(context).load(post.getImage()).into(holder.Image); } @凌驾 public int getItemCount(){ 返回后。大小(); } 公共类NewsViewHolder扩展了RecyclerView.ViewHolder{ 私有图像查看图像; 私有文本视图标题; 私有文本视图内容; 私有文本查看日期; 公共新闻视图持有者(查看项目视图){ 超级(项目视图); Image=(ImageView)itemview.findViewById(R.id.item\u news\u Image); Title=(TextView)itemview.findViewById(R.id.item\u news\u Title); Content=(TextView)itemview.findViewById(R.id.item\u news\u Content); Date=(TextView)itemview.findViewById(R.id.item\u news\u Date); } } }

更新

在Logcat中向我展示:

05-04 05:01:16.031 2199-2199/com.learningandroid.a7learn.example.mr_enginer.newsproject E/RecyclerView:未连接适配器;跳过布局 05-04 05:01:16.184 2199-2199/com.learningandroid.a7learn.example.mr_enginer.newsproject E/RecyclerView:未连接适配器;跳过布局 05-04 05:01:16.320 2199-2233/com.learningandroid.a7learn.example.mr_enginer.newsproject D/OpenGLRenderer:endAllStagingAnimators位于0xf3dc1800(RippledRavable)上,带句柄0xeec397b0


这是由于一些意外/未修补的错误造成的。请检查您的logcat是否有错误debugging@FernandoTan我更新问题