2014-06-20 1 views
0

서버의 모든 바우처를 고객의 전화로로드하는 Activity가 있습니다. 그 활동에는 2 개의 버튼이 있습니다. 첫 번째 버튼은 고객이 구입 한 모든 바우처를 가져옵니다. 두 번째는 고객이 구입할 수있는 모든 사용 가능한 바우처 목록을 가져옵니다.Android ListView의 onListItemClick - onListItemCLick을 활성화하고 필요할 때 비활성화하는 방법?

이제 사용 가능한 바우처 목록에 onListItemClick 만 있으면됩니다 (해당 바우처를 클릭하면 구매할 수있는 옵션이 있습니다). 나는 ListViewListActivity으로 사용합니다. onListItemClick으로 설정하면 구입 한 바우처에도 이벤트가 적용됩니다.

onListItemClick 고객이 자신의 상품권을보고 고객이 상품권을 구입할 때 어떻게 활성화합니까?

는이 두 버튼의 내 코드입니다 :

public void btn_Own(View v){ 
     if(!isConnected){ 
      Toast toast = Toast.makeText(Voucher.this, "Cannot connect to  internet", Toast.LENGTH_LONG); 
      toast.show(); 
      return; 
      //finish(); 
     } 


     if(email.equals("")){ 
      Toast toast = Toast.makeText(Voucher.this, "Please log in to see your voucher!", Toast.LENGTH_LONG); 
      toast.show(); 
     }else{ 
      url = "http://wswob.somee.com/wobservice.svc/checkOwnVoucher/" + email + "/"; 
      new checkingTask().execute(); 


     } 
    } 

public void btn_Shop(View v){ 
     if(!isConnected){ 
      Toast toast = Toast.makeText(Voucher.this, "Cannot connect to internet", Toast.LENGTH_LONG); 
      toast.show(); 
      return; 
      //finish(); 
     } 

     url = "http://wswob.somee.com/wobservice.svc/showVoucher"; 
     new MyTask().execute(); 
    } 

내가 안드로이드에 새로운 해요, 그래서 난 그냥 내가 지금 (내가 아는 한) 할 사용자 정의 어댑터를 사용한다는 것을 알게되었다 . 하지만 asynctask를 사용하고 웹 서비스에서 다른 작업을 실행해야하는 경우 다른 매개 변수를 전달하는 동안 어떻게 할 수 있을지 궁금합니다.

이 내가 웹 서비스를 호출 한 후 목록을 가져 오는 방법은 다음과 같습니다

protected void onPostExecute(Void result){ 
     super.onPostExecute(result); 


     ListAdapter adapter = new SimpleAdapter(
       Voucher.this, voucherList, 
       R.layout.voucher_list, new String[]{"detail","price"}, 
       new int[]{R.id.detail, R.id.price}); 

     setListAdapter(null); 

     setListAdapter(adapter); 
    } 
+0

일부 코드를 게시하십시오. –

+0

이 대답을 참조하십시오 : http://stackoverflow.com/a/7779199/2145360 – hayi

답변

1

당신은 사용자가 실제로 링크 나 버튼을 클릭 할 때 제어하는 ​​true 또는 false로는, setEnabled 사용할 수 있어야합니다.

+0

그래, 고마워, 그건 사용자 정의 어댑터를 사용하지 않고 가장 쉬운 방법입니다. 'ListView.setEnabled (false)' –

0

버튼의 클릭 이벤트를 사용해야합니다. 두 버튼이 있습니다. 프리스트의 onclick이 있어야합니다. 목록보기 Itemclicklistener를 서버에서 모두로드 한 후 사용 불가능하게 설정하고 사용 가능한 보컬을로드하는 두 번째 버튼을 클릭하면 listviewItem을 클릭 가능하게 만듭니다. .

+0

네, 그렇게 생각했지만, 내가 찾은 정보는 모두 맞춤형 어댑터에 관한 것입니다. 고객 어댑터를 사용하는 경우 같은 시간에 비동기를 구현하는 방법을 잘 모르겠습니다. 이제 다른 클래스를 사용하여 다른 작업을 수행 할 때마다 async를 동일한 클래스에 추가하고 다른 링크를 전달합니다. –

관련 문제