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 8901023
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 15, 20262026-06-15T01:14:47+00:00 2026-06-15T01:14:47+00:00

I tried to change a value of a ListView adapter using a thread, but

  • 0

I tried to change a value of a ListView adapter using a thread, but it throws an exception that is CalledFromWrongThreadException
can anyone call a thread that changes a value of any View element?
here is my code:

new Thread(new Runnable(){

    public void run() 
    {
        ap=(ArrayList<Application>) getBoughtApps(android_id);
        adapter1 = new MyCustomAdapter(ap);
        listView = ( ListView ) MainActivity.this.findViewById(R.id.listview);
            changeAdapter();    
    }
}).start();
  • 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-06-15T01:14:48+00:00Added an answer on June 15, 2026 at 1:14 am

    First Option :

    use runOnUiThread for Updating UI from Non – Ui Thread. change your code as:

    new Thread(new Runnable(){
    
        public void run() 
        {
          ap=(ArrayList<Application>) getBoughtApps(android_id);
           Current_Activity.this.runOnUiThread(new Runnable() {
             public void run() {
    
               adapter1 = new MyCustomAdapter(ap);
               listView = ( ListView ) MainActivity.this.findViewById(R.id.listview);
               changeAdapter(); 
              //Your code here..
             }
           });
    
        }
    }).start();
    

    Second Option :

    You can use AsyncTask instead of a Thread for making Network Operations or if application require to Update Ui from Background. you can change your current code using AsyncTask as :

    private class CallwebTask extends AsyncTask<Void, Void, String>
    {
    
        protected ArrayList<Application> doInBackground(String... params) 
        {
            ap=(ArrayList<Application>) getBoughtApps(android_id);
            return ap; // Return ArrayList<Application>
        }
    
        protected onPostExecute(ArrayList<Application> result) {
            Log.i("OnPostExecute :: ", String.valueOf(result.size()));
            //Put UI related code here
            adapter1 = new MyCustomAdapter(result);
            listView = ( ListView ) MainActivity.this.findViewById(R.id.listview);
            changeAdapter(); 
        }
    }
    

    and to start AsyncTask put this line where you are starting Thread:

    new CallwebTask().execute();
    

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

Sidebar

Related Questions

I have a semaphore that I tried to change the value of and it
I'm trying to change the value of an input field with Javascript. I tried
I've tried to change filenames using following script: find dir/ -type f -exec mv
I'm using Ubuntu 12.04 I tried to change my default apache2 port from 80
I am using Eclipse 3.4.1 Build M20080911-1700 I have tried to change the classpath
I tried using aegis -change_attributes to change the brief_description of my current change set
I tried to listen file change event in BlackBerry base on FileExplorer example, but
How to change value of variable passed as argument in C? I tried this:
From what I can gather it appears that this might be because my ListView
I have a ListView that allows the user to change the ViewBase through 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.