0

所以即时通讯的初学者在Android/Java编程和即时通讯尝试执行以下操作:从我的微调选择的项目应该在列表视图中,当我点击一个按钮。到目前为止我这样做,日食犯规显示任何错误或警告,但我的应用程序崩溃,当我试图启动它:微调元素listview上点击应用程序崩溃(android)

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; 

     } 
    });}} 

我不知道为什么会崩溃,如何解决?

谢谢!

回答

0

申报,

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

现在,你不能在ArrayAdapter文字直接,对于我们创建的ArrayList。

所以不喜欢这种方式,

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

让我们,如果这就是问题所在。

+0

谢谢!它解决了我的问题!基本上,当我点击一个按钮时,如何从列表视图中删除选定的项目?谢谢 – 2014-11-02 19:50:56

+0

list.remove(text);应该管用。但不要忘记调用adapter.notifyDataSetChanged();. – Chitrang 2014-11-02 19:55:00