我有一个活动,可以将服务器上的所有优惠券加载到客户的手机上。在那个Activity中,我有2个按钮。第一个按钮将获得客户购买的所有优惠券。第二个将获得客户可以购买的所有可用优惠券的清单。
现在问题是,我只需要onListItemClick
来获取可用优惠券清单(当他们点击这些优惠券时,他们可以选择购买)。我使用ListView
作为ListActivity
。当我设置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();
}
我是Android新手,所以我才知道我必须使用自定义适配器才能这样做(据我所知)。但是我想知道如果我在使用asynctask并在需要时从web服务执行不同的任务时传递不同的参数,我该怎么做呢。
这是我在调用Web服务后获取列表的方式:
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 :(得分:1)
您应该能够使用setEnabled来设置true或false来控制用户何时可以实际点击链接或按钮。
答案 1 :(得分:0)
你应该使用按钮点击活动的事件,你有两个按钮,点击frist但只是在从服务器加载所有vocher后禁用listview Itemclicklistener,点击第二个按钮加载可用的vochers只使你的listviewItem可点击。