Android ListView的onListItemClick - 如何激活onListItemCLick并在需要时停用?

时间:2014-06-20 02:53:43

标签: android android-listview listactivity

我有一个活动,可以将服务器上的所有优惠券加载到客户的手机上。在那个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);
    }

2 个答案:

答案 0 :(得分:1)

您应该能够使用setEnabled来设置true或false来控制用户何时可以实际点击链接或按钮。

答案 1 :(得分:0)

你应该使用按钮点击活动的事件,你有两个按钮,点击frist但只是在从服务器加载所有vocher后禁用listview Itemclicklistener,点击第二个按钮加载可用的vochers只使你的listviewItem可点击。