2017-07-16 30 views
0

我正在构建一个简单的应用程序,用户可以将一个衬垫添加到列表视图,然后单击列表视图中的该项目,该项目将被删除。如何从Android Studio中的ListView(数组列表)中删除项目?

我已完成添加部分,但是,在通过单击删除项目时遇到问题。我的Java代码如下:

package com.example.supornochaudhury.schedulerapplication; 

    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.EditText; 
    import android.widget.ListView; 
    import android.widget.SeekBar; 
    import android.widget.Toast; 

    import java.util.ArrayList; 
    import java.util.List; 

    import static com.example.supornochaudhury.schedulerapplication.R.id.parent; 
    import static com.example.supornochaudhury.schedulerapplication.R.id.select_dialog_listview; 

    public class MainActivity extends AppCompatActivity { 

    ListView timesTableListView; 
    ArrayList<String> Works = new ArrayList<String>(); 



    public void startWork (View view){ 
     EditText edit = (EditText) findViewById(R.id.toDoEditText); 
     String name=edit.getText().toString(); 

     Works.add(name); 
     ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_item, Works); 
     timesTableListView.setAdapter(arrayAdapter); 

    } 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     timesTableListView = (ListView)findViewById(R.id.timesTableListView); 
     timesTableListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Toast.makeText(getApplicationContext(), "Click ListItem Number " + position, Toast.LENGTH_LONG).show(); 
       timesTableListView.removeViewAt(position); 
      } 
     }); 
    } 
} 

运行我的手机上这个应用程序后,我可以没有任何问题增加,但是,当我点击任何项目,应用程序崩溃的。

如果有人帮忙,我会感激不尽。 :)

+0

我的天堂”上呼吁notifyDataSetChanged()现在android工作室,但'removeViewAt ???'whice视图??尝试'删除'或'removeAt'(或类似的东西..但不能查看...) – AsfK

+0

你可以发布日志猫输出? –

回答

0

使用arrayAdapter作为全局。 然后从数组列表中删除一个项目,使用notifyDataSetChanged()到适配器

timesTableListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Toast.makeText(getApplicationContext(), "Click ListItem Number " + position, Toast.LENGTH_LONG).show(); 
       Works.remov(position); 
arrayAdapter.notifyDataSetChanged(); 
      } 
     }); 
0

请先删除item.that从工程ArrayList的点击,然后将适配器

相关问题