2012-04-02 165 views
0

任何人都可以幫助我在listview中顯示以下arraylist。我對此感到震驚。 E00099,E000100,ER008,EW999,EQ333,EQ111,E9089,E1001,E777,E999,E0123,E00054,E0032,E0016,E0016,E009, E008,E007,E005,E003,E001]。如何在listview中顯示arraylist?

這是我從一個webservice.When得到的迴應我嘗試在另一個活動,我得到錯誤的

java.lang.IllegalStateException列表視圖中顯示它:系統服務不提供給前活動的onCreate()。

請幫助我。這是我的第二項活動的代碼。

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

是的......因爲你正在嘗試的setContentView()方法之前,顯示ListView和setAdapter。相反,它應該是如下:

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 2012-04-02 06:14:30

+0

@ user751828確保您的列表不是空的,viewlist是你的xml佈局包含listView1作爲ListView。 – 2012-04-02 06:27:48

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

} 

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



    }