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

  • SEARCH
  • Home
  • 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 7617521
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T03:10:16+00:00 2026-05-31T03:10:16+00:00

I have a listview which displays items retrieved from the webpage. Each item in

  • 0

I have a listview which displays items retrieved from the webpage. Each item in the listview has a facebook share button which allows the user to share the information. However when I click on the share button, the information displayed is different from the item I clicked. And the no matter which item I click, it will be getting information of the first few item.

For example, clicking on item #6 would display info of item #2. In other words, no matter which item I click, it will be displaying wrong information. Am I doing anything wrong here?

**The listview displays items correctly flawlessly.

MyActivity.java

public class MyActivity extends Activity {

private static final String targetURL ="http://www.google.com/image/myself";
ListView list;
private Handler mRunOnUi = new Handler();
private ProgressDialog mProgress;
ProgressDialog dialog;
private String[] mStrings = {};
private String[] dStrings = {};
private String date;

private String messageToPost;
Facebook facebook = new Facebook("110928043842377");
private SharedPreferences mPrefs;

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

    new TheTask().execute();
    list=(ListView)findViewById(R.id.list);                  
}

protected class TheTask extends AsyncTask<Void, Void, MyResultClass >{

    protected void onPreExecute() {
        dialog = ProgressDialog.show(MyActivity.this, "Retrieving Information", "Please wait for a few seconds...", true, false);
        dialog.setCancelable(true);
    }

    protected MyResultClass doInBackground(Void... params) {
        searchContent();
        MyResultClass result = new MyResultClass();
        result.mStrings = mStrings;
        result.dStrings = dStrings;
        result.date = date;
        return result;          
    }   

    protected void onPostExecute(MyResultClass result) {            
        dStrings = result.dStrings;
        mStrings = result.mStrings;
        date = result.date;
        LazyAdapter adapter = new LazyAdapter(MyActivity.this, mStrings, dStrings);
        list.setAdapter(adapter);

        adapter.setTaskListener(new FBookTaskListener(){
            public void doAuthentication()
            {
                    // here all your FB authentication related stuff.

                mPrefs = getPreferences(MODE_PRIVATE);
                String access_token = mPrefs.getString("access_token", null);
                long expires = mPrefs.getLong("access_expires", 0);
                if(access_token != null) {
                    facebook.setAccessToken(access_token);
                }
                if(expires != 0) {
                    facebook.setAccessExpires(expires);
                }

                /*
                 * Only call authorize if the access_token has expired.
                 */
                if(!facebook.isSessionValid()) {

                facebook.authorize(Myactivity.this, new String[] { "publish_stream", "read_stream", "publish_checkins"}, new DialogListener() {
                    @Override
                    public void onComplete(Bundle values) 
                    {
                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token", facebook.getAccessToken());
                        editor.putLong("access_expires", facebook.getAccessExpires());
                        editor.commit();
                    }

                    @Override
                    public void onFacebookError(FacebookError error) {}

                    @Override
                    public void onError(DialogError e) {}

                    @Override
                    public void onCancel() {}
                });
            }

                Log.d("Test", "Authorizing completed");
            }
            public void postToWall(String data)
            {
                Log.d("Test", "Start of postToWall");
                postToFacebook(messageToPost);
                System.out.println("postToWall complete");
            }
        });

        dialog.dismiss();
    }       
}

    class MyResultClass
    { 
        public String[] mStrings; 
        public String[] dStrings;
        public String date;
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);
    }

    private void postToFacebook(String message) {

        Bundle params = new Bundle();

        params.putString("name", "Pinky");
        params.putString("caption", "google.com");
        params.putString("link", "http://www.google.com");
        params.putString("description", "Visit ");
        params.putString("picture", data);

        facebook.dialog(this, "feed", params, new PostDialogListener());

    }//close posttofacebook

    private final class WallPostListener extends BaseRequestListener {
        public void onComplete(final String response) {
            mRunOnUi.post(new Runnable() {
                @Override
                public void run() {
                    mProgress.cancel();

                    Toast.makeText(MyActivity.this, "Posted to Facebook", Toast.LENGTH_SHORT).show();
                }
            });
        }//close oncomplete
    }//close wallpostlistener

public void searchContent()
{
    String imageC = "";
    String textC = "";

    try {

        URL url = new URL(targetURL);

        // Make the connection
        URLConnection conn = url.openConnection();
        BufferedReader reader = new BufferedReader(
         new InputStreamReader(conn.getInputStream()));

        String line = reader.readLine();
        Pattern sChar = Pattern.compile("&.*?;");
        line.replaceAll("\\<.*?\\>", "");
        Matcher msChar = sChar.matcher(line);
        while (msChar.find()) line = msChar.replaceAll("");

        while (line != null) {

            if(line.contains("../../"))
            {

                int startIndex = line.indexOf("../../") + 6;
                int endIndex = line.indexOf(">", startIndex + 1);
                String abc = "http://www.google.com/image/myself";
                String imageSrc = line.substring(startIndex,endIndex);
                //complete full url
                String xyz = abc +imageSrc;
                xyz = xyz.substring(0,xyz.indexOf('"'));
                xyz = xyz +";";
                xyz = xyz.replaceAll(" ", "%20");
                imageC += xyz;                  
                mStrings = imageC.split(";");
                line = reader.readLine();
            }

            if(line.contains("../../") == false)
            {
                line = reader.readLine();
            }

            if (line.contains("Gnametag"))
            {
                int startIndex = line.indexOf("Gnametag") + 10;
                int endIndex = line.indexOf("<", startIndex + 1);
                String gname = line.substring(startIndex,endIndex);
                textC = textC.replaceAll("</span>", "");
                textC += "Name: "+gname+ "\n";
            }


                if (line.contains("Age"))
                {
                    textC += "Age: "+reader.readLine() + "\n" + ";";
                    textC = textC.replaceAll("                  ", "");
                    dStrings = textC.split(";");
                }

            if (line.contains("Last Update"))
            {
                int startIndex = line.indexOf("Last Update") + 16;
                int endIndex = line.indexOf("</td>", startIndex + 1);
                date = line.substring(startIndex,endIndex);
                reader.close();
            }                               
        }           

        // Close the reader
        reader.close();

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

public class PostDialogListener extends BaseDialogListener {
    @Override
    public void onComplete(Bundle values) {
        final String postId = values.getString("post_id");
        if (postId != null) {
        } else {
        }
    }
}    
}

Adapter.java

public class LazyAdapter extends BaseAdapter {
FBookTaskListener taskListener;
Facebook facebook = new Facebook("110928043842377");
private Activity activity;
private String[] data;
private String[] text;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;

private ProgressDialog mProgress;
private Handler mRunOnUi = new Handler();

String FILENAME = "AndroidSSO_data";
private SharedPreferences mPrefs;

public void setTaskListener(FBookTaskListener listener)
{
    this.taskListener = listener;
}

public LazyAdapter(Activity a, String[] d, String[] t) {
    activity = a;
    data=d;
    text = t;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader=new ImageLoader(activity.getApplicationContext());        

}

public int getCount() {
    return data.length;
}    

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

public static class ViewHolder{
    public TextView text;
    public ImageView image;
}

public View getView(final int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    ViewHolder holder;
    if(convertView==null){
        vi = inflater.inflate(R.layout.item, null);
        holder=new ViewHolder();
        holder.text=(TextView)vi.findViewById(R.id.text);;
        holder.image=(ImageView)vi.findViewById(R.id.image);
        vi.setTag(holder);

        ImageButton fbBtn = (ImageButton) vi.findViewById(R.id.fb);

        fbBtn.setOnClickListener(
                new Button.OnClickListener() {
                    public void onClick(View v) 
                    {
                        taskListener.doAuthentication();
                            taskListener.postToWall();}}
            );

    }
    else
    holder=(ViewHolder)vi.getTag();

    holder.text.setText(text[position]);
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);
    return vi;        
}//close getView

public static interface FBookTaskListener{
    public void doAuthentication(); //paramas may be added if needed
    public void postToWall(String data);  //paramas may be added if needed
}

}
  • 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-31T03:10:17+00:00Added an answer on May 31, 2026 at 3:10 am

    The problem here is.. in ListView.. the getView() is called each time you single row of the List is generated.

    Lets say your screen can show 4 items(1-4) at a time(with rest in scroll). When you scroll down..items 2-5 would be visible and getView() is called again for row5.

    What it is troubling here in your case is, your onclick listener which belongs to say 5th item. wil be assigned to row2-5 on screen.. I solved similar problem in my case using view.setTag() in Adapter and in single onclick listener, i retrieved the tag of the view. and perform my onclick task as per the row(identified by tag object).

    Follow this approach you will be able to solve the task then.. If any further doubt..post it with some details like – i m havin lil trouble identifying how your onclick listener is working..like how are you distinguishing the ROWS in/for the onclick event.. what actually those rows are ..

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

Sidebar

Related Questions

I have a listview which has its datasource changed after update of a search
I have a ListView which contains custom rows. This custom row has following UI
I have ListView in my project which has ListItems as in the form of
I have a list of places in listview which i got from parsing JSON.
I have a ListView-like control that displays a list of items of various heights.
Overview: I have an Expandable List View which displays items of the type ToDoElement
I have a ListView which sometimes I need to put around 10000 items in.
I have a ListView which displays 5 listitems. When the user selects the last
I have a custom listview which display an image, textview and radio button. I
I have two Activities in my App, one is a ListView which displays a

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.