Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7501471
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T20:32:48+00:00 2026-05-29T20:32:48+00:00

I need to prevent against lazy load in my custom list-view. so i found

  • 0

I need to prevent against lazy load in my custom list-view. so i found that scrollview onscroll listner are helpfull over there i have tryed it but not getting success to implement this functionality.

Code:

lviewAdapter = new ListViewAdapter(SaxParser2.this, Arr_ActivityName, Arr_AudioScript,Arr_RequestID,Arr_FolderPath,Arr_RequestTo);
    lview.setOnScrollListener(SaxParser2.this);       

@Override
public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
    // TODO Auto-generated method stub
     lview.setAdapter(lviewAdapter);
}
@Override
public void onScrollStateChanged(AbsListView arg0, int arg1) {
    // TODO Auto-generated method stub      
}

here is my BaseAdapter

package com.RecordingApp;

import it.sauronsoftware.ftp4j.FTPClient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Typeface;
import android.graphics.drawable.AnimationDrawable;
import android.media.MediaPlayer;
import android.media.MediaRecorder;
import android.os.AsyncTask;
import android.os.CountDownTimer;
import android.os.Environment;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.Sharedpreferance.GMailSender;

public class ListViewAdapter extends BaseAdapter {
    public static Activity context;

    String title[];
    String description[];
    String RequestId[];
    String Folderpath[];
    String RequestTo[];

    boolean b_Flag_Record_or_not = false;
    boolean b_upload_or_not = false;
    boolean start_or_not = false;
    boolean start_play = false;
    boolean upload_or_not = false;
    boolean b_play_or_not = false;
    boolean isplaying2 = false;

    Thread welcomeThread,welcomeThread2;
    int glob_position;
    MediaPlayer mPlayer2;
    int flag_stop_position;
    AudioRecorder recorder;
    AnimationDrawable frameAnimation, frameAnimation_play;
    private static String mFileName = null;
    private MediaRecorder mRecorder = null;
    private MediaPlayer mPlayer = null;
    Recording login = new Recording();


    MediaPlayer MP_completeRequest = new MediaPlayer();

    public ListViewAdapter(Activity context, String[] title,
            String[] description, String[] req_id, String[] FolderPath,
            String[] Arr_RequestTo) {
        super();
        this.context = context;
        this.title = title;
        this.description = description;
        this.RequestId = req_id;
        this.Folderpath = FolderPath;
        this.RequestTo = Arr_RequestTo;
    }

    public int getCount() {
        // TODO Auto-generated method stub
        return title.length;
    }

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

    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    private class ViewHolder {
        TextView txtViewTitle;
        TextView txtViewDescription;
        Button record, stop, play, upload;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        final ViewHolder holder;
        LayoutInflater inflater = context.getLayoutInflater();
        glob_position = position;
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.listitem_row, null);
            holder = new ViewHolder();
            holder.txtViewTitle = (TextView) convertView
                    .findViewById(R.id.textView1);
            holder.txtViewDescription = (TextView) convertView
                    .findViewById(R.id.textView2);
            holder.record = (Button) convertView.findViewById(R.id.record);

            holder.stop = (Button) convertView.findViewById(R.id.stop);
            holder.play = (Button) convertView.findViewById(R.id.play1);
            holder.upload = (Button) convertView
                    .findViewById(R.id.audio_upload);

            holder.record.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {

                    if (isplaying2 == true) {

                    } else {
                        if (b_Flag_Record_or_not == true) {
                        } else {
                            try {

                                holder.record.setBackgroundResource(R.drawable.record_green);
                                b_Flag_Record_or_not = true;
                                b_play_or_not = true;

                                flag_stop_position = position;
                                AuthHandler dataHandler = new AuthHandler();
                                AuthDataset dataset = dataHandler
                                        .getParsednewJobdtl_DataSet();


                                // Login l = new Login();
                                String str_useid = RequestTo[position];
                                recorder = new AudioRecorder(
                                        "/audiometer/shanesh"
                                                + RequestId[position] + "-"
                                                + str_useid);
                                start_or_not = true;
                                recorder.start();
                                Toast.makeText(context, "Recording Started",
                                        Toast.LENGTH_LONG).show();
                                CountDownTimer countDowntimer = new CountDownTimer(
                                        120000000, 1000) {
                                    public void onTick(long millisUntilFinished) {
                                    }

                                    public void onFinish() {
                                        try {
                                            Toast.makeText(
                                                    context,
                                                    "Stop recording Automatically ",
                                                    Toast.LENGTH_LONG).show();
                                            recorder.stop();
                                        } catch (Exception e) {
                                            // TODO Auto-generated catch block
                                            e.printStackTrace();
                                        }
                                    }
                                };
                                countDowntimer.start();

                            } catch (IOException e) {
                                gotoGmail(e);
                            } catch (Exception e) {
                                gotoGmail(e);
                            }
                        }

                    }
                }
            });

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        try {

            Typeface face = Typeface.createFromAsset(context.getAssets(),
                    "fonts/tahoma.ttf");
            holder.txtViewTitle.setTypeface(face);

            holder.txtViewTitle.setText(title[position]);
            holder.txtViewDescription.setText(description[position]);

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

        holder.stop.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                try {
                    if (isplaying2 == true) {
                        mPlayer2.stop();

                        isplaying2 = false;
                    } else {
                    holder.record.setBackgroundResource(R.drawable.page7_15);
                        if (flag_stop_position == position) {
                            b_Flag_Record_or_not = false;
                            if (start_or_not == true) {
                                b_play_or_not = false;

                                recorder.stop();
                                upload_or_not = true;
                                start_play = true;
                                Toast.makeText(context, "Stoped Recording",
                                        Toast.LENGTH_LONG).show();
                            } else {
                                Toast.makeText(context,
                                        " Please Start recording ",
                                        Toast.LENGTH_LONG).show();

                            }
                        } else {

                        }

                    }

                } catch (Exception e) {
                    gotoGmail(e);
                }
            }
        });
        holder.play.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                String temp = SaxParser2.str_completeORpendingFlag;

                if (temp.equalsIgnoreCase("c")) {
                    try {

                        final MediaPlayer mPlayer = new MediaPlayer();
                        try {

                            mPlayer.setDataSource(Folderpath[position]);

                            mPlayer.prepare();

                            final int welcomeScreenDisplay = mPlayer
                                    .getDuration();
                            welcomeThread = new Thread() {
                                int wait = 0;

                                @Override
                                public void run() {
                                    try {
                                        isplaying2 = true;
                                        mPlayer.start();
                                        while (wait < welcomeScreenDisplay) {
                                            sleep(100);
                                            wait += 100;
                                        }
                                    } catch (Exception e) {

                                    } finally {
                                        isplaying2 = false;
                                    }
                                }
                            };
                            welcomeThread.start();

                        } catch (Exception e) {
                            gotoGmail(e);
                        }

                    } catch (Exception e) {
                        gotoGmail(e);
                    }
                } else if (temp.equalsIgnoreCase("p")) {
                    try {

                        if (b_play_or_not == true) {

                        } else {

                            String str_useid = RequestTo[position];
                            java.io.File file = new java.io.File(Environment
                                    .getExternalStorageDirectory()
                                    + "/audiometer/", "shanesh"
                                    + RequestId[position] + "-" + str_useid
                                    + ".amr");
                            if (file.exists()) {

                                Toast.makeText(context, "Playing",
                                        Toast.LENGTH_LONG).show();

                                mPlayer2 = new MediaPlayer();
                                try {
                                    mPlayer2.setDataSource(Environment
                                            .getExternalStorageDirectory()
                                            + "/audiometer/shanesh"
                                            + RequestId[position]
                                            + "-"
                                            + str_useid + ".amr");
                                    mPlayer2.prepare();
                                    mPlayer2.start();
                                    isplaying2 = true;

                                    final int welcomeScreenDisplay = mPlayer2
                                            .getDuration();
                                    /**
                                     * create a thread to show splash up to
                                     * splash time
                                     */
                                    welcomeThread = new Thread() {
                                        int wait = 0;

                                        @Override
                                        public void run() {
                                            try {mPlayer2.prepare();

                                                while (wait < welcomeScreenDisplay) {
                                                    sleep(100);
                                                    wait += 100;
                                                }
                                            } catch (Exception e) {

                                            } finally {
                                                welcomeThread2 = new Thread() {
                                                    int wait = 0;

                                                    @Override
                                                    public void run() {
                                                        try {
                                                            mPlayer2.start();
                                                            while (wait < welcomeScreenDisplay) {
                                                                sleep(100);
                                                                wait += 100;
                                                            }
                                                        } catch (Exception e) {

                                                        } finally {
                                                            // frameAnimation_play.stop();
                                                            isplaying2 = false;
                                                        }
                                                    }
                                                };
                                                welcomeThread2.start();

                                            }
                                        }
                                    };
                                    welcomeThread.start();


                                } catch (Exception e) {
                                    gotoGmail(e);
                                }
                            } else {
                                Toast.makeText(context, " File Not Found ",
                                        Toast.LENGTH_LONG).show();

                            }
                        }

                    } catch (Exception e) {

                        gotoGmail(e);
                    }
                }

            }
        });

        holder.upload.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                glob_position = position;
                // String str_useid = RequestTo[position];
                if (upload_or_not == true) {
                    try {
                        new xyz().execute();

                    } catch (Exception e) {
                        gotoGmail(e);
                    }
                }

            }

        });
        return convertView;
    }

    private class xyz extends AsyncTask<Void, Void, Void> {
        private final ProgressDialog dialog = new ProgressDialog(context);

        protected void onPreExecute() {
            try {
                this.dialog.setMessage("Uploading...Please Wait..");
                dialog.setIndeterminate(true);
                dialog.setCancelable(false);
                this.dialog.show();

                // put your code which preload with processDialog
            } catch (Exception e) {
                gotoGmail(e);
            }
        }

        @Override
        protected Void doInBackground(Void... arg0) {
            for (int i = 0; i < 100000; i++) {

            }
            it.sauronsoftware.ftp4j.FTPClient con = new it.sauronsoftware.ftp4j.FTPClient();
            try {
                String str_useid = RequestTo[glob_position];
                con.connect("URL");
                con.login("as", "asdasd");
                con.changeDirectory("/rangam/RequestContent/audio");
                con.setPassive(true);
                con.setType(FTPClient.TYPE_BINARY);

                con.upload(new java.io.File(Environment
                        .getExternalStorageDirectory()
                        + "/audiometer/shanesh"
                        + RequestId[glob_position] + "-" + str_useid + ".amr"));

                String filename = "/shanesh" + RequestId[glob_position] + "-"
                        + str_useid + ".amr";
                con.logout();
                con.disconnect(true);
                String MachineName = Machinelist.str_Machinename;
                sendFlagToServer(RequestId[glob_position], filename,
                        MachineName);

            } catch (Exception e) {
                gotoGmail(e);
            }

            return null;

        }

        protected void onPostExecute(final Void unused) {

            if (this.dialog.isShowing()) {
                try {
                    this.dialog.dismiss();
                    AlertDialog.Builder alertbox = new AlertDialog.Builder(
                            context);
                    alertbox.setTitle("Message");
                    alertbox.setMessage(":: Uploaded Successfully  ::");
                    alertbox.setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface arg0,
                                        int arg1) {
                                    Intent intent_request = new Intent(context,
                                            SaxParser2.class);
                                    intent_request.putExtra("value", Machinelist.str_UIDValue);
                                    intent_request.putExtra("machineName",
                                            Machinelist.str_Machinename);
                                    intent_request.putExtra("captureBack_or_not", 2);
                                    context.startActivity(intent_request);
                                    context.finish();
                                }
                            });
                    alertbox.show();

                } catch (Exception e) {
                    gotoGmail(e);
                }
            }

        }
    }

    private void sendFlagToServer(String requestID, String filename,
            String machineName) {
        HttpURLConnection connection;
        OutputStreamWriter request = null;
        String MachineName = Machinelist.str_Machinename;
        URL url = null;
        String parameters = "RequestID=" + requestID + "&FileName=" + filename
                + "&MachineName=" + MachineName + "&RequestType=A";
        try {
            url = new URL(
                    "URL");
            connection = (HttpURLConnection) url.openConnection();
            connection.setDoOutput(true);
            connection.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            connection.setRequestMethod("POST");

            request = new OutputStreamWriter(connection.getOutputStream());
            request.write(parameters);
            request.flush();
            request.close();
            String line = "";
            InputStreamReader isr = new InputStreamReader(
                    connection.getInputStream());
            BufferedReader reader = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }

            isr.close();
            reader.close();

        } catch (Exception e) {
            gotoGmail(e);
        }

    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) {

            try {

                context.finish();
            } catch (Exception e) {
                gotoGmail(e);
            }

        }
        return false;
    }
     void gotoGmail(Exception e) {
        Writer writer = new StringWriter();
        PrintWriter printWriter = new PrintWriter(writer);
        e.printStackTrace(printWriter);
        String s = writer.toString();

    }

}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T20:32:49+00:00Added an answer on May 29, 2026 at 8:32 pm

    Ok,

    So first you’ll have to define “what is the number of views I’d need to load in order my user not to see that it’s lazy loading ?” :

    Let’s say, you’d want to load 20 rows…

    Now in you onscroll, or wherever you want but somewhere like on scroll or Adapter.getView, you’ll have to know what is displayed on screen at the moment… Let me explain :

    I want to load 20 rows so my user doesn’t notice,
    I am display 10 of them
    and 10 of them are just hidden (not displayed if the guy doesn’t scroll).

    Now, I wan’t to load 10 more when the guy just hit my 15th row
    What could be the best way to do that ???

    Humm, let’s see, trying to find something that returns the (ABSOLUTE) number of the last row displayed on screen – this could be a nice solution.
    An otehr solution could be that your 10 or 15th row is the first one displayed on screen ?

    etc, etc…

    I think stuffs like that should do the trick. 😉

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to prevent my double to print in scientific notation in my file,
I'm working on a couple of Linux tools and need to prevent installation on
I need to know how to prevent users from submit the form multiple times
I need to capture keystokes from a wedge device and prevent any controls or
I need to run a PHP code snippet in a Drupal template and prevent
I need to present some information in a table view where some information is
I need to present a modal view controller before showing a split view controller.
I need to implement an authentication in my client application against my server application.
Recently, I had the need for a function that I could use to guarantee
In some library code, I have a List that can contain 50,000 items or

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.