2012-04-02 3 views
0

Может кто-нибудь помочь мне отобразить следующий список в списке. Я поражен этим. [E000199, E000100, ER008, EW999, EQ333, EQ111, E9089, E1001, E777, E999, E0123, E00054, E0032, E0016, E0016, E009, E008, E007, E005, E003, E001].Как отобразить arraylist в списке?

Это ответ я получаю от webservice.When я пытаюсь отобразить его в виде списка в другой деятельности, я получаю сообщение об ошибке, как

java.lang.IllegalStateException: Системные сервисы не доступны для деятельности до OnCreate().

pls help me.this - это мой код во втором действии.

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); 

    } 

ответ

1

Для вашей проблемы вы должны вы пользовательский адаптер.

LINK для справки

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(); 

} 
0

Да это ... потому что вы пытаетесь отобразить ListView и setAdapter перед тем setContentView() метод. Вместо этого он должен быть, как показано ниже:

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); 
    } 
+0

Я пытался, но я получаю же error.thanks ур ответ – user751828

+0

@ user751828 убедитесь, что ваш список не является пустым, а viewlist - ваш xml-макет, содержащий listView1 как ListView. –

0

Просто держать SetContentView(R.layout.viewlist); после супер Заявлении.

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); 

} 

как listview.setAdapter(adapt); будет непосредственно устанавливать значение.

0

, прежде чем вы получите представление, вы должны вызвать setContentView.so вы можете сделать так:

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); 



    } 
Смежные вопросы