2017-07-16 51 views
0

ユーザーはリストビューにライナーを1つ追加し、リストビューでそのアイテムをクリックするとそのアイテムが削除されるという単純なアプリケーションを構築していました。Android StudioのListView(配列リスト)から項目を削除するにはどうすればいいですか?

私は追加部分を完了しましたが、アイテムをクリックして削除すると問題が発生しています。

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

を自分の携帯電話でこのアプリケーションを実行した後、私は私が項目のいずれかをクリックしていたときに、しかし、何の問題もなくアプリのクラッシュを追加することができる午前:私のJavaコードは次のとおりです。

誰かが助けてくれたら、私は負うだろう。 :)

+0

Iの避難所」にnotifyDataSetChanged()を呼び出し、その後item.thatが作品のArrayListからクリックされた削除してください。アンドロイドスタジオは今すぐですが、 'removeViewAt ???' whice view ?? 'remove'または' removeAt'を試してみてください。(このようなものですが、ビューは表示されません...) – AsfK

+0

ログcat出力を投稿できますか? –

答えて

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

最初のアダプタ