0

Can anybody help me to display the following arraylist in a listview.I am struck with this. [E000199, E000100, ER008,EW999,EQ333,EQ111,E9089,E1001,E777,E999,E0123,E00054,E0032,E0016,E0016, E009, E008,E007,E005,E003,E001].

This is the response I get from a webservice.When I try to display it in a listview in another activity I am getting error as

java.lang.IllegalStateException: System services not available to Activities before onCreate().

pls help me.this is my code in second activity.

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        listview = (ListView) findViewById(R.id.listView1);

        }

    public void sendList(ArrayList<String> list) {
        // TODO Auto-generated method stub

        this.emp_list=list;

        System.out.println("^^^^^^"+emp_list);

        adapt = new ArrayAdapter<String>(this,R.layout.list,R.id.title,emp_list);
        listview.setAdapter(adapt);

        setContentView(R.layout.viewlist);

    }

5 Answers 5

1

For your problem you must you custom adapter.

LINK for your reference

Sign up to request clarification or add additional context in comments.

Comments

0
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewlist);
    listview = (ListView) findViewById(R.id.listView1);
    adapt = new ArrayAdapter<String>(this,R.layout.list,R.id.title,emp_list);
    listview.setAdapter(adapt);

    }

public void sendList(ArrayList<String> list) {
    // TODO Auto-generated method stub

    this.emp_list.clear(); 
    this.emp_list.addAll( list ); 
    adapt.notifyDataChanged();

}

Comments

0

Yes it is...because you are trying to display ListView and setAdapter before setContentView() method. Instead it should be as below:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewlist);    // It should be here //1st solution

        listview = (ListView) findViewById(R.id.listView1);
        sendList(list);  // you forgot to call this method
     }

    public void sendList(ArrayList<String> list) {
        // TODO Auto-generated method stub

        this.emp_list=list;

        System.out.println("^^^^^^"+emp_list);

        adapt = new ArrayAdapter<String>(this,R.layout.list,R.id.title,emp_list);
        listview.setAdapter(adapt);
    }

1 Comment

@user751828 make sure your list is not empty and viewlist is your xml layout contains listView1 as ListView.
0

Just Keep SetContentView(R.layout.viewlist); after super Statement.

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewlist);
listview = (ListView) findViewById(R.id.listView1);
adapt = new ArrayAdapter<String>(this,R.layout.list,R.id.title,emp_list);
listview.setAdapter(adapt);

}

as listview.setAdapter(adapt); will directly Set the Value.

Comments

0

before you'll get a view,you must call setContentView.so you can do like this:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewlist); //add this 
        listview = (ListView) findViewById(R.id.listView1);

        }

    public void sendList(ArrayList<String> list) {
        // TODO Auto-generated method stub

        this.emp_list=list;

        System.out.println("^^^^^^"+emp_list);

        adapt = new ArrayAdapter<String>(this,R.layout.list,R.id.title,emp_list);
        listview.setAdapter(adapt);



    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.