3
import java.io.BufferedInputStream; 
    import java.io.ByteArrayOutputStream; 
    import java.io.IOException; 
    import java.io.InputStream; 
    import java.net.MalformedURLException; 
    import java.net.URL; 
    import java.text.DateFormat; 
    import java.text.SimpleDateFormat; 
    import java.util.Calendar; 
    import java.util.Date; 

    import org.apache.http.HttpEntity; 
    import org.apache.http.HttpResponse; 
    import org.apache.http.client.HttpClient; 
    import org.apache.http.client.methods.HttpGet; 
    import org.apache.http.entity.BufferedHttpEntity; 
    import org.apache.http.impl.client.DefaultHttpClient; 

    import android.app.Activity; 
    import android.content.Context; 
    import android.content.Intent; 
    import android.graphics.Bitmap; 
    import android.graphics.BitmapFactory; 
    import android.graphics.drawable.Drawable; 
    import android.net.Uri; 
    import android.util.Log; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.view.ViewGroup; 
    import android.view.ViewGroup.LayoutParams; 
    import android.view.ViewParent; 
    import android.webkit.WebView; 
    import android.widget.BaseAdapter; 
    import android.widget.ImageView; 
    import android.widget.ImageView.ScaleType; 
    import android.widget.LinearLayout; 
    import android.widget.TextView; 
    import android.widget.ViewAnimator; 

    public class NewsScreenAdapter extends BaseAdapter { 

     LayoutInflater inflater; 
     public GifDecoderView webview1; 
     public static viewholder holder; 
     View view = null; 
     public static Context context; 
     public ImageLoader IL; 
     public String imgUrl; 
     public static String addurl;  
     public NewsScreenActivity activity; 
     String image; 
     public static String str; 
     public static Date parsed; 
     public static String ac, cat_id; 
     int storyLenght; 

     public NewsScreenAdapter(NewsScreenActivity a) { 
      // TODO Auto-generated constructor stub 

      context = a.getApplicationContext(); 
      this.activity = a;  
      inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      IL = new ImageLoader(activity.getApplicationContext()); 
     } 

     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      // return NewsScreenActivity.arrayList_header.size(); 

      return NewsScreenActivity.TotalDataArray.size(); 
     } 

     @Override 
     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 

     @Override 
     public int getItemViewType(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 

     @Override 
     public int getViewTypeCount() { 
      // TODO Auto-generated method stub 
      return NewsScreenActivity.TotalDataArray.size(); 
     } 
     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 

     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      // TODO Auto-generated method stub 

      View vi = convertView; 

       holder = new viewholder(); 

       vi = inflater.inflate(R.layout.newsscren_row, null); 
       holder.news_header_title = (TextView) vi.findViewById(R.id.header_title); 
       holder.ll_data = (LinearLayout) vi.findViewById(R.id.data); 

       vi.setTag(holder); 

      holder.news_header_title.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        cat_id = NewsScreenActivity.arrayList_header.get(position); 
        ac = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).catId; 

        activity.startActivity(new Intent(activity,CategoryActivity.class).putExtra("id", ac)); 

       } 
      }); 

      holder.ll_data.removeAllViews(); 
      try { 


      storyLenght = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.size(); 
      } catch (Exception e) { 
       // TODO: handle exception 
      } 
      Log.d("Adapter ", " story Lenght " + storyLenght); 

      for (int i = 0; i < storyLenght; i++) { 

       view = LayoutInflater.from(activity).inflate(R.layout.sub_row, null); 

       holder.short_text = (TextView) view.findViewById(R.id.short_text); 
       holder.image = (ImageView) view.findViewById(R.id.image); 
       holder.des = (TextView) view.findViewById(R.id.des); 
       holder.date_time = (TextView) view.findViewById(R.id.date_time); 
       holder.llAdd = (LinearLayout) view.findViewById(R.id.sub_llAdd); 
       holder.imgAdd = (ImageView) view.findViewById(R.id.imgAdd); 

      try{ 
        holder.image.setTag(NewsScreenActivity.arrayList_image.get(i)); 

        IL.DisplayImage(
          ((NewsScreenActivity.ImagesData) ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
            .get(position)).storyArr.get(i)).imageArr.get(0)).smallurl, activity, holder.image); 

        notifyDataSetChanged(); 

       } catch (Exception e) { 
        // TODO: handle exception 
       } 
    try { 
     holder.short_text.setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.get(i)).title); 
      holder.des.setText(((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(position)).storyArr.get(i)).description); 


       String st = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
         .get(position)).storyArr.get(i)).date; 
       parsed = new Date(Long.parseLong(st.substring(6, st.length() - 2))); 

       SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy hh:mmaa"); 
       System.out.println(sdf.format(parsed)); 
       String concat = sdf.format(parsed); 
       String data = concat; 
       String half1 = data.substring(0, 11); 
       Log.e("1st date", "" + half1); 

       SimpleDateFormat display_date = new SimpleDateFormat("dd.MM.yyyy"); 
       Date d_date = new Date(); 
       String dis_date = display_date.format(parsed); 

       String half2 = data.substring(11, 19); 
       Log.e("2st time", "" + half2);  

       SimpleDateFormat currentdate = new SimpleDateFormat("MMM dd,yyyy"); 
       Date currunt = new Date(); 
       String day = currentdate.format(currunt); 
       if (half1.equalsIgnoreCase(day) == true) { 
        holder.date_time.setText(half2); 
        Log.v("if condition", "" + half2); 
       } else { 
        half1 = dis_date; 
        holder.date_time.setText(half1); 
        Log.v("else condition", "" + half1); 
       } 
       Log.e("currunt time", "" + day); 

       holder.news_header_title.setText(((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
           .get(position)).catDisplay); 


       if (!((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
         .get(position)).storyArr.get(i)).advertising 
         .equalsIgnoreCase("null")) { 

        holder.short_text.setVisibility(view.GONE); 
        holder.date_time.setVisibility(view.GONE); 
        holder.des.setVisibility(view.GONE); 

        imgUrl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
          .get(position)).storyArr.get(i)).adData.imageurl; 

        // TODO Auto-generated method stub 
        addurl = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray 
          .get(position)).storyArr.get(i)).adData.targeturl; 


        //-----------------GIF Image view ------------ 


        //holder.imgAdd.setImageBitmap(IL.getBitmap(imgUrl)); 
        holder.imgAdd.setImageBitmap(loadImageFromUrl(imgUrl)); 
        /* InputStream is = null; 
         try { 
          is = (InputStream) new URL(imgUrl).getContent(); 

         webview1 = new GifDecoderView(context, is);   
         activity.setContentView(webview1);            

         } catch (Exception e) { 
          return null; 
         }*/ 

        try { 
         InputStream is = (InputStream) new URL(imgUrl).getContent(); 

         GifDecoderView webview1 = new GifDecoderView(activity, is); 
        // GifMovieView webview1 = new GifMovieView(activity, is); 

       //  holder.llAdd.addView(webview1, holder.imgAdd.getLayoutParams()); 


        } catch (Exception e) { 
         // TODO: handle exception 
        } 


        holder.imgAdd.setOnClickListener(new OnClickListener() {      
         @Override 
         public void onClick(View v) {      

          activity.startActivity(new Intent(activity, AdvertismentActivity.class)); 

         } 
        });    
        Log.i("---", "---------" + imgUrl); 
        holder.llAdd.setVisibility(View.VISIBLE); 
        } 

       holder.ll_data.addView(view);  

       Log.i("Set Tag", position+"OK"+i); 
       view.setTag(position+"OK"+i); 

       view.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 

         String tag = (String) v.getTag(); 
         String[] arr = tag.split("OK"); 
         int p = Integer.parseInt(arr[0]); 
         int i = Integer.parseInt(arr[1]); 
         Log.i("Pos and I", p + " " + i); 

         str = ((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray .get(p)).storyArr.get(i)).storyid; 

         Log.i("Pos and I and STR", p + " " + i + " " + str); 
         Intent intent = new Intent(context,ShowFullDescriprion.class); 
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
         intent.putExtra("id", str); 
         intent.putExtra("cat", p); 
         intent.putExtra("pos",i); 
         context.startActivity(intent); 
        } 
       }); 
    } catch (Exception e) { 
      // TODO: handle exception 
     } 
      } 
      return vi; 

     } 

     public static String getDate(long milliSeconds, String dateFormat) { 
      // Create a DateFormatter object for displaying date in specified 
      // format. 
      DateFormat formatter = new SimpleDateFormat(dateFormat); 

      // Create a calendar object that will convert the date and time value in 
      // milliseconds to date. 
      Calendar calendar = Calendar.getInstance(); 
      calendar.setTimeInMillis(milliSeconds); 
      return formatter.format(calendar.getTime());   
     }  
     public static class viewholder { 

      TextView news_header_title, short_text, des, date_time; 
      LinearLayout ll_data, llAdd; 
      public ImageView image, imgAdd; 

     } 
     public static Bitmap loadImageFromUrl(String url) { 
      URL m; 
      InputStream i = null; 
      BufferedInputStream bis = null; 
      ByteArrayOutputStream out =null; 
      try { 
       m = new URL(url); 
       i = (InputStream) m.getContent(); 
       bis = new BufferedInputStream(i,1024 * 8); 
       out = new ByteArrayOutputStream(); 
       int len=0; 
       byte[] buffer = new byte[1024]; 
       while((len = bis.read(buffer)) != -1){ 
        out.write(buffer, 0, len); 
       } 
       out.close(); 
       bis.close(); 
      } catch (MalformedURLException e1) { 
       e1.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      byte[] data = out.toByteArray(); 
      Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 
      //Drawable d = Drawable.createFromStream(i, "src"); 
      return bitmap; 
     } 

    } 

回答

2
import java.io.BufferedInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 

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.params.HttpConnectionParams; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONArray; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.ProgressDialog; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.content.IntentFilter; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Color; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.StrictMode; 

import android.text.Html; 
import android.util.Log; 
import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Window; 
import android.view.animation.Animation; 
import android.view.animation.TranslateAnimation; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class ShowFullDescriprion extends Activity implements OnClickListener { 

    ImageView show_image, adv_image, refresh,show_home; 
    TextView title_text, des_text, date_time_txt; 
    Button back_btn; 
    LinearLayout ll, llAdv; 
    public static String url, full_des, advertising, adurl = "",img, 
      targeturl; 
    ProgressDialog progressDialog; 
    TextView mDisplay; 
    AsyncTask<Void, Void, Void> mRegisterTask; 
    String TAG = "ShowFullDescriprion"; 


    public static ArrayList<String> catId = new ArrayList<String>(); 
    public static ArrayList<String> catDisp = new ArrayList<String>(); 
    public static ArrayList<String> next_arraylist = new ArrayList<String>(); 
    public static ArrayList<String> privious_arraylist = new ArrayList<String>(); 
    //public static ArrayList<String> arrayList_advertising = new ArrayList<String>(); 

    SimpleGestureFilter simpleGestureFilter; 
    LinearLayout llCat; 
    TextView tvCatDisp; 

    private static final int SWIPE_MIN_DISTANCE = 200; 
    private static final int SWIPE_MAX_OFF_PATH = 250; 
    private static final int SWIPE_THRESHOLD_VELOCITY = 200; 
    int swpCnt = 0; 
    int SWIPE_MAX_VALUE = 1; 
    int PIC_WIDTH = 0; 

    private GestureDetector gestureDetector; 
    View.OnTouchListener gestureListener; 

    @SuppressWarnings("unused") 
    private Animation animleftin = null, animleftout = null, 
      animrightin = null, animrightout = null; 

    public static String idS, titleS, dateS, descS, next, privious, adv; 
    public static String bigimageS=null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.showfull_description); 


     back_btn = (Button) findViewById(R.id.button1); 
     llCat = (LinearLayout) findViewById(R.id.llCategory); 
//  llCat.setOnClickListener(this); 
     adv_image = (ImageView) findViewById(R.id.imgAdd); 
     refresh = (ImageView) findViewById(R.id.refresh_btn); 
     show_home=(ImageView)findViewById(R.id.showfull_des_home); 

     llAdv = (LinearLayout) findViewById(R.id.llAdd); 
     // simpleGestureFilter = new SimpleGestureFilter(this, this); 
    // int SWIPE_MAX_VALUE_new = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size(); 

     //swpCnt = ((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.indexOf(getIntent().getExtras().getString("id")); 
     //((NewsScreenActivity.StoryData) ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray .get(p)).storyArr.get(i)).storyid; 
     //String temp = ((CategoryActivity.StoryData) ((CategoryActivity.MainData) CategoryActivity.TotalDataArray .get(getIntent().getExtras().getInt("cat"))).storyArr.get(getIntent().getExtras().getString("pos"))).storyid; 

    // Log.i("Show full Description .....", "********************** cat "+getIntent().getExtras().getInt("cat")+" **** id *** "+getIntent().getExtras().getString("id")); 
     //Log.i("Show full Description .....", "********************** SWIPE_MAX_VALUE_new "+ SWIPE_MAX_VALUE_new+" *** swpCnt **** "+temp +"**** Array *** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.get(5)); 
     try { 
     // SWIPE_MAX_VALUE = ((NewsScreenActivity.MainData) NewsScreenActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size(); 
      SWIPE_MAX_VALUE = ((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size(); 
      swpCnt = getIntent().getExtras().getInt("pos"); 

     } catch (Exception e) { 
      // TODO: handle exception 
     } 

     url = "http://maritimeglobalnews.com/json/story/"+ getIntent().getExtras().getString("id"); 

     new StoryDataAsyn().execute(); 

     title_text = (TextView) findViewById(R.id.show_full_des_title_txt); 
     show_image = (ImageView) findViewById(R.id.show_full_des_image); 
     des_text = (TextView) findViewById(R.id.show_full_des_txt); 
     date_time_txt = (TextView) findViewById(R.id.show_full_des_datetime_txt); 

     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 

     StrictMode.setThreadPolicy(policy); 

     show_home.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      startActivity(new Intent(getBaseContext(), NewsScreenActivity.class)); 
      finish(); 
      } 
     }); 

    /* Log.i(TAG, 
       "================Inside OnCreate Method=============================="); 
     checkNotNull(SERVER_URL, "SERVER_URL"); 
     checkNotNull(SENDER_ID, "SENDER_ID"); 
     // Make sure the device has the proper dependencies. 
     GCMRegistrar.checkDevice(getBaseContext()); 
     // Make sure the manifest was properly set - comment out this line 
     // while developing the app, then uncomment it when it's ready. 
     GCMRegistrar.checkManifest(getBaseContext()); 

     registerReceiver(mHandleMessageReceiver, new IntentFilter(
       DISPLAY_MESSAGE_ACTION)); 
     final String regId = GCMRegistrar.getRegistrationId(this); 
     if (regId.equals("")) { 
      Log.i(TAG, 
        "================Inside if in regId=null =============================="); 
      // Automatically registers application on startup. 
      GCMRegistrar.register(this, SENDER_ID); 
     } else { 
      Log.i(TAG, 
        "================Inside else in regId=null =============================="); 
      // Device is already registered on GCM, needs to check if it is 
      // registered on our server as well. 
      if (GCMRegistrar.isRegisteredOnServer(this)) { 
       // Skips registration. 
       Log.i(TAG, 
         "================Inside else in regId=null Already register on Server ============================="); 
       mDisplay.append(getString(R.string.already_registered) + "\n"); 
      } else { 
       Log.i(TAG, 
         "================Inside else in regId=null trying to register on Server ============================="); 
       // Try to register again, but not in the UI thread. 
       // It's also necessary to cancel the thread onDestroy(), 
       // hence the use of AsyncTask instead of a raw thread. 
       final Context context = this; 
       mRegisterTask = new AsyncTask<Void, Void, Void>() { 

        @Override 
        protected Void doInBackground(Void... params) { 
         Log.i(TAG, 
           "================Inside doInBackground Method=============================="); 
         boolean registered = ServerUtilities.register(context, 
           regId); 
         // At this point all attempts to register with the app 
         // server failed, so we need to unregister the device 
         // from GCM - the app will try to register again when 
         // it is restarted. Note that GCM will send an 
         // unregistered callback upon completion, but 
         // GCMIntentService.onUnregistered() will ignore it. 
         if (!registered) { 
          GCMRegistrar.unregister(context); 
         } 
         return null; 
        } 

        @Override 
        protected void onPostExecute(Void result) { 
         Log.i(TAG, 
           "================Inside onPostExecute Method=============================="); 
         mRegisterTask = null; 
        } 

       }; 
       mRegisterTask.execute(null, null, null); 
      } 
     }  */ 

     back_btn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       ShowFullDescriprion.this.finish(); 
      } 
     }); 
     refresh.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       new StoryDataAsyn().execute();  

      } 
     }); 

     gestureDetector = new GestureDetector(new MyGestureDetector()); 
     gestureListener = new View.OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
       return gestureDetector.onTouchEvent(event); 
      } 
     }; 
     prepareAnimations(); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     // TODO Auto-generated method stub 
     return super.onTouchEvent(event); 
    } 

    /*boolean net; 

    //onCreate 
    net = void isOnline() { 
    } 
    if (net == true) 
    { 
    //perform internet related tasks in the app 
    } 

    //function 
    public boolean isOnline1() { 
      ConnectivityManager cm = (ConnectivityManager) this 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); 
      return activeNetworkInfo != null; 

      // return cm.getActiveNetworkInfo().isConnected(); 

     }*/ 


    public class StoryDataAsyn extends AsyncTask<Void, Void, Void> { 
    // NewsScreenActivity obj = new NewsScreenActivity(); 

     @Override 
     protected void onPreExecute() { 
      // TODO Auto-generated method stub 
      super.onPreExecute(); 

    //  if (isNetworkConnected() == true) 
    //  { 
       progressDialog = new ProgressDialog(ShowFullDescriprion.this); 
       progressDialog.setMessage("Loding ..."); 
       progressDialog.setCancelable(false); 
       progressDialog.show(); 
/*   } else { 
       AlertDialog connection = new AlertDialog.Builder(
         ShowFullDescriprion.this) 
         .setTitle("No Network Found") 
         .setMessage(
           "Internet Connection Reqired To Use this Application") 
         .setPositiveButton("Ok", 
           new DialogInterface.OnClickListener() { 

            public void onClick(DialogInterface dialog, 
              int whichButton) 
            { 

            } 
           }).create(); 

       connection.show(); 
      } 
*/  } 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 

      catId.clear(); 
      catDisp.clear();    
      getData(url); 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      if (isNetworkConnected() == true) { 

      progressDialog.dismiss(); 
      title_text.setText(titleS);   

      /*if(bigimageS!= null && !bigimageS.equals("")) 
      { 
      show_image.setImageBitmap(decodeImage(bigimageS)); 
      Log.v("if", ""+bigimageS); 
      }else 
      { 
       show_image.setImageBitmap(decodeImage(null)); 

       Log.v("else", ""+bigimageS); 
      } 
*/ 

      if(isBlank(bigimageS)==true) 

      { 
       show_image.setVisibility(View.GONE); 
       show_image.setImageBitmap(decodeImage(null)); 
      } 
      else if(isBlank(bigimageS)==false) 
      { 
       show_image.setImageBitmap(decodeImage(bigimageS)); 
      } 
    //  show_image.setImageBitmap(loadImageFromUrl(bigimageS));   

      //show_image.setImageBitmap(decodeImage(bigimageS)); 
      des_text.setText(Html.fromHtml(descS));   

      Date parsed = new Date(Long.parseLong(dateS.substring(6, 
        dateS.length() - 2))); 

      SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy hh:mmaa"); 
      System.out.println(sdf.format(parsed)); 

      date_time_txt.setText(sdf.format(parsed)); 

      llCat.removeAllViews(); 
      for (int i = 0; i < catId.size(); i++) { 

       tvCatDisp = new TextView(ShowFullDescriprion.this); 

       tvCatDisp.setText("");  

       tvCatDisp.setText(catDisp.get(i)); 
       tvCatDisp.setBackgroundResource(R.drawable.box); 
       tvCatDisp.setTextColor(Color.BLACK); 
       tvCatDisp.setTextSize(18); 
       tvCatDisp.setTag(i); 
       Log.e("tvCatDisp............", ""+catDisp.get(i)); 
       tvCatDisp.setOnClickListener(ShowFullDescriprion.this); 

       tvCatDisp.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
       // TODO Auto-generated method stub 
       int pos = Integer.parseInt(v.getTag().toString()); 
       startActivity(new Intent(ShowFullDescriprion.this, 
       CategoryActivity.class).putExtra("id",catId.get(pos))); 
       } 
       }); 

       llCat.addView(tvCatDisp); 
      } 
      llAdv.removeAllViews(); 
      if ((!adurl.equalsIgnoreCase("")) && adurl != null) { 
       llAdv.setVisibility(View.VISIBLE); 
       ImageLoader il = new ImageLoader(ShowFullDescriprion.this); 

      // adv_image.setImageBitmap(il.getBitmap(adurl)); 
     //  adv_image.setImageBitmap(loadImageFromUrl(adurl)); 
        try { 
         InputStream is = (InputStream) new URL(adurl).getContent(); 

         GifDecoderView webview1 = new GifDecoderView(ShowFullDescriprion.this, is); 




        // activity.setContentView(webview1); 

        llAdv.addView(webview1,adv_image.getLayoutParams()); 

        // holder.imgAdd.setImageBitmap(IL.getBitmap(imgUrl)); 


        } catch (Exception e) { 

        } 

        llAdv.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
        // Intent showAdvIntent =new Intent(ShowFullDescriprion.this,AdvertismentActivity.class); 
        // showAdvIntent.putExtra("id",targeturl); 
         startActivity(new Intent(getBaseContext(),AdvertismentActivity.class)); 
         Log.e("show add url...", ""+targeturl); 
        } 
       }); 
      } 
      }else 

      { 
       llAdv.setVisibility(View.GONE); 
       AlertDialog connection = new AlertDialog.Builder(
         ShowFullDescriprion.this) 
         .setTitle("No Network Found") 
         .setMessage(
           "Internet Connection Reqired To Use this Application") 
         .setPositiveButton("Ok", 
           new DialogInterface.OnClickListener() { 

            public void onClick(DialogInterface dialog, 
              int whichButton) 
            { 
            // new StoryDataAsyn().execute(); 
             progressDialog.dismiss(); 
            } 
           }).create(); 

       connection.show();    

      }  

     } 
    } 
    public boolean isNetworkConnected() { 
     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo ni = cm.getActiveNetworkInfo(); 
     if (ni == null) { 
      return false; 
     } else 

     return true; 
    } 

    public void getData(String url) { 

     HttpClient client = new DefaultHttpClient(); 
     HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); // Timeout   

     try { 

      HttpPost request = new HttpPost(url); 

      DefaultHttpClient httpClient = new DefaultHttpClient(); 

      HttpResponse res = httpClient.execute(request); 
      Log.i("Request", request.toString()); 

      String JsonResponseData = EntityUtils.toString(res.getEntity()); 
      Log.i("JSON", JsonResponseData); 

      JSONObject mainJsonObj = new JSONObject(JsonResponseData); 

      titleS = mainJsonObj.getString("Title"); 
      dateS = mainJsonObj.getString("Date"); 
      descS = mainJsonObj.getString("ContentHTML"); 
      next = mainJsonObj.getString("NextStoryEID"); 
      next_arraylist.add(next); 
      Log.e("next id", "" + next_arraylist); 
      Log.e("nextstring id", "" + next); 

      privious = mainJsonObj.getString("PrevStoryEID"); 
      privious_arraylist.add(privious); 
      Log.e("privious id", "" + privious_arraylist); 
      Log.e("privious string id", "" + privious); 

      try { 
       JSONArray tmpAd = mainJsonObj.optJSONArray("advertising");    
       adurl = tmpAd.getJSONObject(0).getString("ImageUrl"); 
       targeturl = tmpAd.getJSONObject(0).getString("TargetUrl"); 
       Log.v("target url is", "" + targeturl); 

      } catch (Exception e) { 
       // TODO: handle exception 
      } 



      try { 
       JSONArray tmpimg = mainJsonObj.optJSONArray("images");   
       bigimageS = tmpimg.getJSONObject(0).getString("iPhoneBigImageURL");    
       Log.v("bigimageS is", "" + bigimageS); 
      } catch (Exception e) { 
       // TODO: handle exception 
      }  

      JSONArray categJsonArr = mainJsonObj.getJSONArray("categories");  

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

       catId.add(categJsonArr.getJSONObject(i) .getString("CategoryEID")); 
       catDisp.add(categJsonArr.getJSONObject(i).getString("CategoryDisplay")); 
      } 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 


    public static Bitmap loadImageFromUrl(String url) { 
     URL m; 
     InputStream i = null; 
     BufferedInputStream bis = null; 
     ByteArrayOutputStream out =null; 
     try { 
      m = new URL(url); 
      i = (InputStream) m.getContent(); 
      bis = new BufferedInputStream(i,1024 * 8); 
      out = new ByteArrayOutputStream(); 
      int len=0; 
      byte[] buffer = new byte[1024]; 
      while((len = bis.read(buffer)) != -1){ 
       out.write(buffer, 0, len); 
      } 
      out.close(); 
      bis.close(); 
     } catch (MalformedURLException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     byte[] data = out.toByteArray(); 
     Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); 
     //Drawable d = Drawable.createFromStream(i, "src"); 
     return bitmap; 
    } 


    public static Bitmap decodeImage(String arrayList_image) { 

     URL aURL; 

     try { 

      aURL = new URL(arrayList_image); 

      URLConnection conn = aURL.openConnection(); 

      conn.connect(); 

      InputStream is = conn.getInputStream(); 

      BufferedInputStream bis = new BufferedInputStream(is); 

      Bitmap bm = BitmapFactory.decodeStream(bis); 

      bis.close(); 

      is.close(); 

      return bm; 

     } catch (MalformedURLException e) { 

      e.printStackTrace(); 

     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    public boolean dispatchTouchEvent(MotionEvent me) { 
     this.gestureDetector.onTouchEvent(me); 
     return super.dispatchTouchEvent(me); 
    } 

    class MyGestureDetector extends SimpleOnGestureListener { 
     @Override 
     public boolean onDown(MotionEvent e) { 
      // TODO Auto-generated method stub 

      return super.onDown(e); 
     } 

     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
       float velocityY) { 

      Log.e("Inside onfling", "Call"); 

      if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) 
       return false; 
      // right to left swipe 
      if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { 

       url = "http://maritimeglobalnews.com/json/story/"+next; 
       new StoryDataAsyn().execute(); 

       Log.d("url next mate", ""+url); 
       Log.d("right to left privious.....", ""+next_arraylist);   

      try { 
       Log.i("","swip count " + swpCnt+" ***** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size());  
      } catch (Exception e) { 
       // TODO: handle exception 
      }    
       if (swpCnt >= 0 && swpCnt < SWIPE_MAX_VALUE - 1) 
       { 
        swpCnt++; 

       /* url = "http://maritimeglobalnews.com/json/story/"+next; 
        new StoryDataAsyn().execute(); 

        Log.d("url next mate", ""+url); 
        Log.d("right to left privious.....", ""+next_arraylist);  */  
       }    
      } 
      else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY){ 



       url = "http://maritimeglobalnews.com/json/story/"+privious; 
       Log.v("previousid first if", ""+privious); 
       Log.i("right to left privious first if.....", ""+privious_arraylist); 

       new StoryDataAsyn().execute(); 

       if (swpCnt > 0 && swpCnt <= SWIPE_MAX_VALUE - 1) { 


        swpCnt--; 

        /*url = "http://maritimeglobalnews.com/json/story/"+privious; 
        Log.v("url",""+url); 
        Log.v("previousid 2 if", ""+privious);     
        new StoryDataAsyn().execute();  */    
       } 
       try { 
        Log.i("","swip count " + swpCnt+" ***** "+((CategoryActivity.MainData) CategoryActivity.TotalDataArray.get(getIntent().getExtras().getInt("cat"))).storyArr.size());      
       } catch (Exception e) { 
        // TODO: handle exception 
       } 

       /*if (swpCnt > 0 && swpCnt <= SWIPE_MAX_VALUE - 1) 
       { 
        swpCnt--; 

        url = "http://maritimeglobalnews.com/json/story/"+privious; 
        Log.v("previousid 3 if", ""+privious); 
        Log.i("right to left privious. 3 if", ""+privious_arraylist);     

        new StoryDataAsyn().execute();    
       } */      
      } 
      return false; 
     } 
    } 

    private void prepareAnimations() { 
     animleftin = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 
       +1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f); 

     animleftout = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 
       0.0f, Animation.RELATIVE_TO_PARENT, -1.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f); 

     animrightin = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 
       -1.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f); 

     animrightout = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 
       0.0f, Animation.RELATIVE_TO_PARENT, +1.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f, 
       Animation.RELATIVE_TO_PARENT, 0.0f); 
      } 

    /*@Override 
    protected void onDestroy() { 
     Log.i(TAG, 
       "================Inside OnDestroy Method=============================="); 
     if (mRegisterTask != null) { 
      mRegisterTask.cancel(true); 
     } 
     unregisterReceiver(mHandleMessageReceiver); 
     GCMRegistrar.onDestroy(this); 
     super.onDestroy(); 
    } 

    private void checkNotNull(Object reference, String name) { 
     Log.i(TAG, 
       "================Inside checkNotNull Method=============================="); 
     if (reference == null) { 
      throw new NullPointerException(getString(R.string.error_config, 
        name)); 
     } 
    } 

    private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.i(TAG, 
        "================Inside OnReceive in BroadcastReceiver Method=============================="); 
      String newMessage = intent.getExtras().getString(EXTRA_MESSAGE); 
      mDisplay.append(newMessage + "\n"); 
     } 
    };*/ 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if (v == tvCatDisp) { 

      // TODO Auto-generated method stub 

      startActivity(new Intent(ShowFullDescriprion.this, 
        CategoryActivity.class).putExtra("id", catId.get((Integer)v.getTag()))); 
     } 

    } 
    public static boolean isBlank(String string) { 
     if (bigimageS == null || bigimageS.length() == 0) 
      return true; 

     int l = bigimageS.length(); 
     for (int i = 0; i < l; i++) { 
      if (!Character.isWhitespace(bigimageS.codePointAt(i))) 
       return false; 
     } 
     return true; 
    } 

} 
1

您没有重复使用您的列表项。这就是为什么名单开始“口吃”。

在这个问题上有很多答案显示重用ListView项目的概念。 Like this one

一般来说:在您的getView方法中,检查convertView是否为空。如果是,请展开您的观点。如果它不为空,只需插入要显示的项目。这应该解决你的口吃列表视图问题。

+0

Keyboardsurfer#感谢答复.... I M解决从我身边这个滚动的口吃问题。 – Android

0

请使用在BaseAdpter现有布局如下

ViewHolder holder = null; 

    if (convertView == null) 
    { 
     /* There is no view at this position, we create a new one. 
      In this case by inflating an xml layout */ 
     convertView = mInflater.inflate(R.layout.listview_item, null); 
     holder = new ViewHolder(); 
     holder.toggleOk = (ToggleButton) convertView.findViewById(R.id.togOk); 
     convertView.setTag (holder); 
    } 
    else 
    { 
     /* We recycle a View that already exists */ 
     holder = (ViewHolder) convertView.getTag(); 
    } 

这或许可以帮助你

+0

感谢您的回复....我解决了从我这边滚动的口吃问题。 – Android