2016-10-04 69 views
0
public class MainActivity extends ActionBarActivity { 

    ListView listview; 
    String[] subjects = new String[] {"Android","PHP","Blogger","WordPress","SEO"}; 
    List<String> subject_list; 
    ArrayAdapter<String> arrayadapter; 

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

     listview = (ListView)findViewById(R.id.listView1); 

     subject_list = new ArrayList<String>(Arrays.asList(subjects)); 

     arrayadapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, subject_list); 

     listview.setAdapter(arrayadapter); 

     listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
       // TODO Auto-generated method stub 

       subject_list.remove(position); 

       arrayadapter.notifyDataSetChanged(); 

       Toast.makeText(MainActivity.this, "Item Deleted", Toast.LENGTH_LONG).show(); 

       return true; 
      } 

     }); 

    } 
} 

在這裏,我不得不通過長按刪除從列表視圖項的程序,而不是刪除項目有長點擊位於ListView項禁用項目。如何禁用長的ListView項單擊

+1

你試過view.setEnabled(假);在onItemLongClick()? –

+0

u能plzz修改和編輯 – joy

+0

公共布爾onItemLongClick(適配器視圖父,觀景, INT位置,長的id){視圖.setEnabled(假)} –

回答

0

try代碼像下面

listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, 
              int position, long id) { 
       // TODO Auto-generated method stub 

       //subject_list.remove(position); 

       if(!view.isEnabled()){ 
        return false; 
       } 
       view.setEnabled(false); 
       view.setClickable(false); 

       arrayadapter.notifyDataSetChanged(); 

       Toast.makeText(Main2Activity.this, "Item Deleted", Toast.LENGTH_LONG).show(); 

       return true; 
      } 

     }); 

由於列表視圖替換RecyclerView,所以我建議你使用RecyclerView在未來或與此。

編碼快樂:)

+0

是的,但我想與你在stackoverflow聊天室 –

+0

連接,但無法找到你,你能在那裏找到我嗎? –

0

試試這個:

subject_list.getChildAt(position).setEnabled(false); 

:) :)

+0

tnqq這麼多回合的反應 – joy

+0

的答案應該是比代碼更它應該包括解釋爲什麼它是合適和適當的。你想教育,所以OP知道將來要做什麼,而不僅僅是解決這個特殊的問題。 –