Java 如何在android中单击按钮后锁定微调器
如何防止用户在按下按钮等事件后更改在Java 如何在android中单击按钮后锁定微调器,java,android,dynamic,spinner,Java,Android,Dynamic,Spinner,如何防止用户在按下按钮等事件后更改在微调器中选择的值? 这就像从微调器中选择所需值后,用户将按下按钮,之后他们将不允许看到微调器中的值,但顶部值除外,即所选值,因此不会对所选值进行更改 更新:-是的,微调器也会在按下该相同按钮时动态创建,因此它应该只锁定以前创建的微调器,而不是新的微调器。 动态创建布局的代码,该布局包含微调器,以及编辑文本和按钮:- 您需要创建一个变量(可能是布尔标志=true) 在按钮上,单击更改为flag=false 并在监听器内部对微调器检查标志是否为true或false
微调器中选择的值?
这就像从微调器
中选择所需值后,用户将按下按钮
,之后他们将不允许看到微调器
中的值,但顶部值除外,即所选值,因此不会对所选值进行更改
更新:-是的,微调器也会在按下该相同按钮时动态创建,因此它应该只锁定以前创建的微调器,而不是新的微调器。
动态创建布局
的代码,该布局包含微调器
,以及编辑文本
和按钮
:-
您需要创建一个变量(可能是
布尔标志=true
)
在按钮上,单击更改为flag=false
并在监听器内部对微调器检查标志是否为true或false
示例
//微调器内部侦听器
if(flag){
//do task
}else{
//restrict the task or don't do anything or display message
}
更新的问题
然后应该使用disable()方法。喷丝头1.disable()或喷丝头2.disable()等等。只需单击按钮禁用喷丝头即可
spinner.setEnabled(false)代码>在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);
newView.setVIsibility(View.VISIBLE);
your_spinner.setVisibility(View.GONE); // to remove (hide)
your_spinner.setVisibility(View.VISIBLE); // to make it visible
要再次启用,可以将其可见性设置为可见,如下所示:
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);
newView.setVIsibility(View.VISIBLE);
your_spinner.setVisibility(View.GONE); // to remove (hide)
your_spinner.setVisibility(View.VISIBLE); // to make it visible
也可以只显示/隐藏微调器,如下所示:
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);
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);
希望有帮助。:-)保持else块为空,simpleAnd在if块中,执行您需要的任务want@Amit或者使用PrivatMamtoraThis指示的禁用方法将删除整个新布局的可见性,对吗?是,它将删除整个布局(包括其子视图)的可见性,该布局包含微调器
,以及编辑文本
和按钮
,但我不想禁用微调器以外的任何内容。您只需隐藏微调器或禁用它即可。