2012-04-02 42 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); 



    }