2016-11-30 77 views
0

我有一個列表視圖,它通過單擊其項目向服務器發送數據。我想禁用已發送到服務器的listview項目(行),以便用戶不能再次將數據發送到服務器。請幫幫我。如何在單擊第二次時禁用列表視圖行

這裏是主要的活動我的ListView聽者代碼:

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

    obj.setAdapter(arrayAdapter); 
    obj.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 




      // TODO Auto-generated method stub 
      int id_To_Search = arg2 + 1; 

      Bundle dataBundle = new Bundle(); 
      dataBundle.putInt("Order_No", id_To_Search); 

      Intent intent = new Intent(getApplicationContext(), OrderForm.class); 

      intent.putExtras(dataBundle); 
      startActivity(intent); 


     } 
    }); 

,當我在列表視圖項點擊它帶我去將數據發送到服務器的一個活動。我想要的是,當數據ID發送到服務器,所以listview項目在主要活動中被禁用,因此用戶將無法再發送任何想法?

+2

,首先檢查是否已經發送的數據用於該項目,如果是,什麼也不做。事情是*你將如何*保存每個項目的*狀態*。它可以使用*標記*,或者使用模型選項,如果您的適配器正在獲取某些Java對象的數據....或或或...(最好共享一些代碼) –

回答

1

,就能爲您點擊視圖的標籤。然後當你點擊它第二次檢查,如果它已經被設置

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

obj.setAdapter(arrayAdapter); 
obj.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     If(arg1.getTag().toString().equals("1")) return; 
     // TODO Auto-generated method stub 
     arg1.setTag("1").; 
     int id_To_Search = arg2 + 1; 
     Bundle dataBundle = new Bundle(); 
     dataBundle.putInt("Order_No", id_To_Search); 

     Intent intent = new Intent(getApplicationContext(), OrderForm.class); 

     intent.putExtras(dataBundle); 
     startActivity(intent); 


    } 
}); 
在onClickItem
+0

java.lang。 NullPointerException在sales.com.salesproj.MainActivity $ 1.onItemClick(MainActivity.java:129) 應用程序崩潰,當我點擊listview項目,它顯示此錯誤消息,如果條件..請幫助 –

+0

請發佈完整的錯誤 – jafarbtech

相關問題