2012-09-14 53 views
4

我做了一個列表視圖,在標題處添加一個編輯文本字段list.And它工作正常,併成功地添加項目。然後我嘗試調用這個listview並設置適配器。 現在我想要的是當我點擊它應該被刪除的項目,但它的獲取力被關閉。這裏是我的代碼:通過點擊列表視圖中的任何項目刪除項目

public class AddDeleteItemActivity extends ListActivity { 
public ListView listViewCity; 
public Context ctx; 

ArrayList list = new ArrayList(); 

ArrayAdapter adapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 

    Button btn = (Button) findViewById(R.id.btnAdd); 
    ctx=this; 


    adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, list); 

    OnClickListener listener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      EditText edit = (EditText) findViewById(R.id.txtItem); 
      list.add(edit.getText().toString()); 
      edit.setText(""); 
      adapter.notifyDataSetChanged(); 
     } 
    }; 


    listViewCity = (ListView) findViewById(R.id.list); 
    listViewCity.setAdapter(adapter); 

    listViewCity.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long id) { 

       Toast.makeText(getApplicationContext(), " " +position , Toast.LENGTH_LONG).show(); 
       SparseBooleanArray checkedItemPositions = getListView().getCheckedItemPositions(); 
       int itemCount = getListView().getCount(); 

       for(int i=itemCount-1; i >= 0; i--){ 
        if(checkedItemPositions.get(i)){ 
         adapter.remove(list.get(i)); 
        } 
       } 
       adapter.notifyDataSetChanged(); 
     } 

    }); 


    btn.setOnClickListener(listener); 

    setListAdapter(adapter); 
} 
} 
+0

嗨,你爲什麼要刪除你的遊戲開發問題? – Talha

+0

所有投票都沒有幫助......這是嘲笑 – MBMJ

+0

只是試着問不同的風格。 – Talha

回答

5

嘗試這種方式

listViewCity.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long id) { 

       Toast.makeText(getApplicationContext(), " " +position , Toast.LENGTH_LONG).show(); 
       list.remove(position); 
       adapter.notifyDataSetChanged(); 
       adapter.notifyDataSetInvalidated(); 
     } 

    }); 

從列表中刪除,並使用編輯

適配器通知

爲什麼要使用這條語句刷新列表當您擴展ListActivity時

listViewCity = (ListView) findViewById(R.id.list); 

您可以使用getListView()來擴展ListActivity或擴展Activity而不是ListActivity來獲取ListView對象。

+0

no.it不起作用 – MBMJ

相關問題