Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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/3/android/228.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
Java 每次我获取pdf文件时,我的ArrayAdapter堆栈_Java_Android_Android Arrayadapter - Fatal编程技术网

Java 每次我获取pdf文件时,我的ArrayAdapter堆栈

Java 每次我获取pdf文件时,我的ArrayAdapter堆栈,java,android,android-arrayadapter,Java,Android,Android Arrayadapter,每当单击按钮获取文件时,我需要有关如何刷新ArrayAdapter的帮助。它继续堆积新列表,而不清除最后一个列表。请帮忙,也不要介意我的英语 这是我的阵列适配器 public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; PdfHolder holder = null; if(row == null) { Layou

每当单击按钮获取文件时,我需要有关如何刷新ArrayAdapter的帮助。它继续堆积新列表,而不清除最后一个列表。请帮忙,也不要介意我的英语

这是我的阵列适配器

 public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    PdfHolder holder = null;
    if(row == null)
    {
        LayoutInflater inflater=LayoutInflater.from(activity);
        row = inflater.inflate(layoutResourceId,parent,false);
        holder = new PdfHolder();
        holder.textViewName = (TextView) row.findViewById(R.id.textViewName);
        holder.textViewUrl = (TextView) row.findViewById(R.id.textViewUrl);
        row.setTag(holder);
    }
    else
    {
        holder= (PdfHolder) row.getTag();
    }

    pdf = data.get(position);
    holder.textViewName.setText(pdf.getName());
    holder.textViewUrl.setText(pdf.getUrl());
    return row;
}


class PdfHolder
{
    TextView textViewName,textViewUrl;
}
private void getPdfs() {
    progressDialog.setMessage("Fetching pdfs from server...");
    progressDialog.show();
    StringRequest stringRequest = new StringRequest(Request.Method.POST, PDF_FETCH_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    progressDialog.dismiss();
                    try {
                        JSONObject obj = new JSONObject(response);
                        Toast.makeText (Files.this,obj.getString("message"), Toast.LENGTH_SHORT).show();

                        JSONArray jsonArray = obj.getJSONArray("pdfs");
                        for(int i=0;i<jsonArray.length();i++){
                            JSONObject jsonObject = jsonArray.getJSONObject(i);
                            Pdf pdf  = new Pdf();
                            String pdfName = jsonObject.getString("name");
                            String pdfUrl = jsonObject.getString("url");
                            pdf.setName(pdfName);
                            pdf.setUrl(pdfUrl);
                            pdfList.add(pdf);
                        }

                        pdfAdapter = new PdfAdapter(Files.this, R.layout.list_layout, pdfList);
                        listView.setAdapter(pdfAdapter);
                        pdfAdapter.notifyDataSetChanged();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },

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

                }
            }
    );

    RequestQueue request = Volley.newRequestQueue(this);
    request.add(stringRequest);
}
这是我从实时服务器获取文件的代码

 public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    PdfHolder holder = null;
    if(row == null)
    {
        LayoutInflater inflater=LayoutInflater.from(activity);
        row = inflater.inflate(layoutResourceId,parent,false);
        holder = new PdfHolder();
        holder.textViewName = (TextView) row.findViewById(R.id.textViewName);
        holder.textViewUrl = (TextView) row.findViewById(R.id.textViewUrl);
        row.setTag(holder);
    }
    else
    {
        holder= (PdfHolder) row.getTag();
    }

    pdf = data.get(position);
    holder.textViewName.setText(pdf.getName());
    holder.textViewUrl.setText(pdf.getUrl());
    return row;
}


class PdfHolder
{
    TextView textViewName,textViewUrl;
}
private void getPdfs() {
    progressDialog.setMessage("Fetching pdfs from server...");
    progressDialog.show();
    StringRequest stringRequest = new StringRequest(Request.Method.POST, PDF_FETCH_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    progressDialog.dismiss();
                    try {
                        JSONObject obj = new JSONObject(response);
                        Toast.makeText (Files.this,obj.getString("message"), Toast.LENGTH_SHORT).show();

                        JSONArray jsonArray = obj.getJSONArray("pdfs");
                        for(int i=0;i<jsonArray.length();i++){
                            JSONObject jsonObject = jsonArray.getJSONObject(i);
                            Pdf pdf  = new Pdf();
                            String pdfName = jsonObject.getString("name");
                            String pdfUrl = jsonObject.getString("url");
                            pdf.setName(pdfName);
                            pdf.setUrl(pdfUrl);
                            pdfList.add(pdf);
                        }

                        pdfAdapter = new PdfAdapter(Files.this, R.layout.list_layout, pdfList);
                        listView.setAdapter(pdfAdapter);
                        pdfAdapter.notifyDataSetChanged();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },

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

                }
            }
    );

    RequestQueue request = Volley.newRequestQueue(this);
    request.add(stringRequest);
}
private void getPdfs(){
setMessage(“正在从服务器获取PDF…”);
progressDialog.show();
StringRequest StringRequest=新的StringRequest(Request.Method.POST,PDF\u FETCH\u URL,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
progressDialog.disclose();
试一试{
JSONObject obj=新的JSONObject(响应);
Toast.makeText(Files.this,obj.getString(“message”),Toast.LENGTH_SHORT.show();
JSONArray JSONArray=obj.getJSONArray(“PDF”);

对于(int i=0;i,每次加载新数据时,您都将新的
pdf
s添加到同一列表中

要解决这个问题,在

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

您正在通过internet下载数据吗?如果您这样做,那么您的问题可能是由于您的应用程序冻结而在主线程中下载数据。或者您如何填充适配器?问题不在代码的这一部分。此代码没有显示问题。您如何将适配器连接到列表视图?您如何填充适配器?@Yupi是的,我得到了来自我的live的文件server@davidxxx我正在使用arraylist Sir在获取新数据时是否清除pdfList(或创建新的pdfList)?如果是类变量,则使用pdfList.add(pdf)将新对象添加到旧列表中;