0

我开发了一个应用程序来将我的 android 应用程序连接到远程服务器并在列表视图中显示数据。

我做了所有事情,但数据没有显示在列表视图中。

这些是我用来完成此任务的文件,请帮助我:

媒体活动.java

package com.shadatv.shada;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Locale;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.net.ParseException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MediaActivity extends OptionsMenu {
    Locale locale;

    // boolean mybooks;

    Configuration config = new Configuration();
    static SharedPreferences sharedPreferenceid;
    static SharedPreferences.Editor editorid;
    public static final String Myid = "Myid";
    String myid = "";
    InputStream is = null;
    StringBuilder sb = null;
    String resultt = "";
    JSONArray jArray;
    String result = null;

    public DAOCanticles cantDatabase = null;

    int numberofrowssss;
    int responseCode;

    String targetcover, targetbname, targetauthname;

    public String caNameField = "", caLinkField = "", caImgField = "";

    // ///////////////////ONLINE BESTSALED//////////////////////
    String caNameJson, caLinkJson, caImgJson;

    public ArrayList<String> caNameHolder = new ArrayList<String>();
    public ArrayList<String> caLinkHolder = new ArrayList<String>();
    public ArrayList<String> caImgHolder = new ArrayList<String>();

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.media);

        cantDatabase = new DAOCanticles(this);
        new LoadData().execute();
    }

    // =============================================================================

    public void onClickPrograms(View view) {
        startActivity(new Intent("com.shadatv.ProgramsActivity"));
    }

    // =============================================================================

    public void onClickCanticles(View view) {
        startActivity(new Intent("com.shadatv.CanticlesActivity"));
    }

    // =============================================================================

    public void onClickDocumentaries(View view) {
        startActivity(new Intent("com.shadatv.DocumentariesActivity"));
    }

    // =============================================================================

    private class LoadData extends AsyncTask<Void, Void, Void> {
        public ProgressDialog progressDialog1;

        @Override
        protected Void doInBackground(Void... params) {
            cantDatabase.deletetable();
            getCanticlesByJSON();
            addCanticles();
            return null;
        }

        @Override
        // can use UI thread here
        protected void onPreExecute() {
            CharSequence contentTitle = getString(R.string.loading);
            this.progressDialog1 = ProgressDialog.show(MediaActivity.this, "",
                    contentTitle);
        }

        // -------------------------------------------//

        @Override
        protected void onPostExecute(final Void unused) {
            this.progressDialog1.dismiss();
        }
    }

    // =============================================================================

    public void getCanticlesByJSON() {
        try {
            HttpClient httpclient = new DefaultHttpClient();
            try {

            } catch (Exception e) {
                Log.e("my_log_tag", e.toString());
            }

            // buffered reader
            try {
                HttpPost httppost = new HttpPost(
                        "http://dt-works.com/ags/shadatv/canticles/android_data");
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(is, "UTF-8"), 80);
                sb = new StringBuilder();
                sb.append(reader.readLine() + "\n");
                String line = "0";
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                is.close();
                result = EntityUtils.toString(entity);
                //result = sb.toString();
            } catch (Exception e) {
                Log.e("my_log_tag", e.toString());
            }
            try {
                result = result.substring(1);
                jArray = new JSONArray(result);

                JSONObject json_data = null;

                for (int i = 0; i < jArray.length(); i++) {
                    json_data = jArray.getJSONObject(i);

                    caNameJson = json_data.getString("ca_name");
                    caLinkJson = json_data.getString("ca_link");
                    caImgJson = json_data.getString("ca_link");

                    caNameHolder.add(caNameJson);
                    caLinkHolder.add(caLinkJson);
                    caImgHolder.add(caImgJson);

                }
            } catch (JSONException e) {
                Log.e("my_log_tag", e.toString());
            }
        } catch (ParseException e) {
            Log.e("my_log_tag", e.toString());
        } catch (Exception e) {
            Log.e("my_log_tag", e.toString());
        }

    }

    // =============================================================================

    public void addCanticles() {
        try {
            for (int i = 0; i < caNameHolder.size(); i++) {
                caNameField = caNameHolder.get(i);
                caLinkField = caLinkHolder.get(i);
                caImgField = caImgHolder.get(i);

                cantDatabase.createCanticle(caNameField, caLinkField,
                        caImgField);
            }
        } catch (Exception e) {
            Log.e("my_log_tag", "notfilled yet");
        }
    }
}

CanticlesActivity.java

package com.shadatv.shada;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; 
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList; 
import java.util.zip.ZipInputStream;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;


import android.app.Activity; 
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;

import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import android.os.AsyncTask;
import android.os.Bundle;  
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import android.content.SharedPreferences;
import android.database.Cursor;


public class CanticlesActivity extends Activity {
    int read;
    boolean flage;
    final Context context = this;
    String picpath="http://img.youtube.com/vi/";

    ArrayList<String> getCaName = new ArrayList<String>();
    ArrayList<String> getCaLink = new ArrayList<String>();
    ArrayList<String> getCaImg = new ArrayList<String>();           

    String targetCaName;    
    String targetCaLink;
    String targetCaImg;

    File sdcard = Environment.getExternalStorageDirectory();
    File shadaRoot = new File (sdcard.getAbsolutePath() + "/Shada_Folder");
    BitmapFactory.Options options = new BitmapFactory.Options();

    Bitmap bm ;
    ImageView img ;
    public DAOCanticles cantDatabase =null;
    byte[] encoded;
    String value;
    String useriddd;

    //=============================================================================

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.canticles);
        cantDatabase = new DAOCanticles(this);
        new LoadData().execute();
    }

    //=============================================================================

    private class LoadData extends AsyncTask<Void, Void, Void> { 
        private ProgressDialog progressDialog;  

        @Override
        // can use UI thread here
        protected void onPreExecute() {
            CharSequence contentTitle = getString(R.string.loading);
            this.progressDialog = ProgressDialog.show(CanticlesActivity.this,"",contentTitle); 
        }

        //-------------------------------------------//

        @Override
        protected void onPostExecute(final Void unused) {  
            this.progressDialog.dismiss();  
            showCanticles();
        }

        //-------------------------------------------//

        @Override
        protected Void doInBackground(Void... params) {
            // TODO Auto-generated method stub  
            // HTTP post
            getCanticles();         
            return null;
        }
    }

    //=============================================================================

    public void getCanticles() {
        try{
            Cursor canticles =  cantDatabase.getCanticlesList();
            do{
                getCaName.add(canticles.getString(0));
                getCaLink.add(canticles.getString(1));
                getCaImg.add(canticles.getString(2));                               
            }
            while(canticles.moveToNext());
        }catch(Exception e){            
        }
    }   

    //=============================================================================

    public void Downloadimage(String imgURL) {
        try {

            String finlpth="";
            finlpth=picpath + imgURL + "/2.jpg";
            shadaRoot.mkdirs(); 

            URL u = new URL(finlpth);
            HttpURLConnection c = (HttpURLConnection) u.openConnection();
            c.setRequestMethod("GET");
            c.setDoOutput(true);
            c.connect();
            File DownloadedFile=new File(shadaRoot, imgURL + ".jpg");
            //          if(!outfile.exists())
            FileOutputStream f = new FileOutputStream(DownloadedFile);

            InputStream in = c.getInputStream();

            byte[] buffer = new byte[1024];
            int len1 = 0;
            while ((len1 = in.read(buffer)) > 0) {
                f.write(buffer, 0, len1);
            }

            f.close();

        } catch (Exception e) {
            Log.d("Downloader", e.getMessage());
        }
    }

    //=============================================================================

    public void showCanticles()
    {
        final ListView listview = (ListView) findViewById(R.id.listView1);  
        for(int i=0; i < getCaName.size(); i++)
        {           
            String caName=getCaName.get(i);
            String caLink=getCaLink.get(i);
            String caImg=getCaImg.get(i);
            Toast.makeText(getBaseContext(), caName, Toast.LENGTH_SHORT).show();
            if(!caImg.equalsIgnoreCase("0"))
            {
                Downloadimage(caLink);
            }   
        }

        listview.setOnItemClickListener(new ListView.OnItemClickListener(){

            public void onItemClick(AdapterView<?> parent, View v,
                    int position, long id) {
                long selectedItemId = listview.getSelectedItemId();

                ListAdapter adapterr =  listview.getAdapter();
                String selectedValue = (adapterr.getItem(position)).toString();

                String selectedCaName=getCaName.get(position);                              
                String selectedCaLink=getCaLink.get(position);

//              // custom dialog
                final Dialog dialog = new Dialog(context);
                dialog.setContentView(R.layout.customdialogue);
                dialog.setTitle(selectedCaName);

                // set the custom dialog components - text, image and button
                String selectedbookcover=getCaImg.get(position);

                String test= shadaRoot+"/"+ selectedCaName;
                String myJpgPath = test+".jpg";

                TextView caLink = (TextView) dialog.findViewById(R.id.ca_link);                         
                caLink.setText(selectedCaLink);
                options.inSampleSize = 6;

                Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);                
                // if button is clicked, close the custom dialog
                dialogButton.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });

                dialog.show();
                dialog.getWindow().setLayout(350,350);
            }
        });

        listview.setAdapter(new DataAdapter(
                CanticlesActivity.this,
                getCaName.toArray(new String[getCaName.size()]),
                getCaLink.toArray(new String[getCaLink.size()]),
                getCaImg.toArray(new String[getCaImg.size()])));
    }
}   

canticles.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg1"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/listView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" >
    </ListView>

</LinearLayout>

custom_grid.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/list_selector"
    android:gravity="left"
    android:orientation="horizontal"
    android:padding="10dip" >

    <!-- ListRow Left sied Thumbnail image -->

    <ImageView
        android:id="@+id/caImgView"
        android:layout_width="57dip"
        android:layout_height="84dip"
        android:layout_alignLeft="@+id/linearLayout1"
        android:layout_alignTop="@+id/linearLayout1"
        android:paddingLeft="0dip"
        android:scaleType="fitXY"
        android:src="@drawable/noimage" />

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="170dip"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/targetmonth1"
        android:layout_alignTop="@+id/targetmonth1"
        android:layout_marginLeft="16dp"
        android:layout_toRightOf="@+id/targetmonth1"
        android:orientation="vertical"
        android:padding="0dip" >

        <TextView
            android:id="@+id/caNameView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/linearLayout1"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:text="dddddddd"
            android:textColor="#040404"
            android:textSize="13dip"
            android:textStyle="bold"
            android:typeface="sans" />

        <TextView
            android:id="@+id/caLinkView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/caNameView"
            android:layout_alignRight="@+id/caNameView"
            android:layout_below="@+id/caNameView"
            android:layout_gravity="center_horizontal"
            android:text="author"
            android:textColor="#343434"
            android:textSize="9dip"
            android:typeface="sans" />

    </LinearLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/arrow" />

</RelativeLayout>
4

1 回答 1

0

use this

public List< String> caNameHolder = new ArrayList< String>();

instead of

public ArrayList< String> caNameHolder = new ArrayList< String>();

于 2013-03-03T13:27:21.617 回答