【问题标题】:onListItemClick of Android ListView - How to activate onListItemCLick and deactivate when needed?Android ListView的onListItemClick - 如何在需要时激活onListItemCLick并停用?
【发布时间】:2014-06-20 02:53:42
【问题描述】:

我有一个 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 服务执行不同的任务。

这是我调用网络服务后获取列表的方式:

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);
    }

【问题讨论】:

标签: android android-listview listactivity


【解决方案1】:

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

【讨论】:

  • 是的,非常感谢,这是不使用自定义适配器的最简单方法。 ListView.setEnabled(false)
【解决方案2】:

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

【讨论】:

  • 是的,我是这么认为的,但我发现的信息都是关于自定义适配器的。如果我使用客户适配器,我真的不确定如何同时实现异步。现在,我将 async 放在同一个类中,并在单击不同按钮执行不同工作时传递不同的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 2013-03-20
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多