如何在android中按下按钮后锁定微调器

时间:2014-08-23 06:57:47

标签: java android dynamic spinner

如何在按下某个按钮后阻止用户更改spinner中所选的值?

就像从spinner中选择所需的值后,用户将按button,之后他们将不会看到spinner中的值,除了spinners最高值,即所选值,以便不对所选值进行任何更改。

更新: - 是的same button也是在Layout的压力下动态创建的,所以它应该只锁定以前创建的微调器而不是新的微调器。 < / p>

动态创建Spinner的代码,其中包含EditText以及Button&amp; View.OnClickListener addListener = new View.OnClickListener() { @Override public void onClick(View v) { final RelativeLayout newView = (RelativeLayout) getLayoutInflater().inflate(R.layout.product_row_detail, null); newView.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); ImageButton btnRemove = (ImageButton) newView.findViewById(R.id.btnRemove); btnRemove.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { container.removeView(newView); } }); container.addView(newView); : -

{{1}}

3 个答案:

答案 0 :(得分:2)

简单地只需在按钮上单击

即可禁用微调器

spinner.setEnabled(false);

答案 1 :(得分:2)

在onClick方法中,您只需将可见性设置为GONE即可删除视图,如下所示:

View.OnClickListener addListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final RelativeLayout newView = (RelativeLayout) getLayoutInflater().inflate(R.layout.product_row_detail, null);

        newView.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

        ImageButton btnRemove = (ImageButton) newView.findViewById(R.id.btnRemove);
        btnRemove.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                newView.setVisibility(View.GONE);  // remove (hide) your view
            }
        });

        container.addView(newView);

要再次启用它,您可以将其可见性设置为VISIBLE,如下所示:

newView.setVIsibility(View.VISIBLE);

或者您可以显示/隐藏您的微调器,如下所示:

your_spinner.setVisibility(View.GONE);  // to remove (hide)
your_spinner.setVisibility(View.VISIBLE);  // to make it visible

如果您只想禁用微调器:

your_spinner.setEnabled(false);

希望它有所帮助。

答案 2 :(得分:0)

您需要创建一个变量(可能是boolean flag = true

点击按钮,点击更改为flag = false

在Listener中调整Spinner 检查flag是否为false

示例

//在spinner的侦听器内部

if(flag){
//do task
}else{
//restrict the task or don't do anything or display message
}

更新问题

然后你应该使用disable()方法。 spinner1.disable()或spinner2.disable()等等..