Java 单击应用程序崩溃时将微调器元素添加到listview(android)

Java 单击应用程序崩溃时将微调器元素添加到listview(android),java,android,android-layout,android-listview,android-spinner,Java,Android,Android Layout,Android Listview,Android Spinner,因此,我是android/java编程的初学者,我正在尝试做以下工作:当我单击按钮时,从微调器中选择的项目应该出现在列表视图中。到目前为止,eclipse没有显示任何错误或警告,但当我尝试启动它时,我的应用程序崩溃: public class MainActivity extends ActionBarActivity { Button button3; Button button2; Button button4; ListView listView1;

因此,我是android/java编程的初学者,我正在尝试做以下工作:当我单击按钮时,从微调器中选择的项目应该出现在列表视图中。到目前为止,eclipse没有显示任何错误或警告,但当我尝试启动它时,我的应用程序崩溃:

public class MainActivity extends ActionBarActivity {


    Button button3;
    Button button2;
    Button button4;
    ListView listView1;
    Spinner s1;
    String text;

    ArrayAdapter<String> adapter;
    ArrayList<String> list;
    int itemPos;

     @Override
        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            button3 = (Button) findViewById(R.id.button3); 
            button4 = (Button) findViewById(R.id.button4); 
            button2 = (Button) findViewById(R.id.button2);
            s1 = (Spinner) findViewById(R.id.spinner1);
            listView1 = (ListView) findViewById(R.id.listView1);



            adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_single_choice, list);  //this part here might not be correct
                listView1.setAdapter(adapter);

                button3.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {

                        String text = s1.getSelectedItem().toString();
                        adapter.add(text);    
                    }});


     listView1.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {

        itemPos = position;

      }
    });}}
我不明白它为什么会崩溃,如何修复

谢谢大家!

宣布

ArrayList<String> list = new ArrayList<String>();

让我们看看这是不是问题。

谢谢!它解决了我的问题!基本上,当我单击按钮时,如何从listview中删除所选项目?thankslist.removetext;应该有用。但别忘了调用adapter.notifyDataSetChanged;。
    button3.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {

            String text = s1.getSelectedItem().toString();
            list.add(text);
            // To notify adapter after that changes in data 
            adapter.notifyDataSetChanged();
        }
    });