我是编程世界的新手,我的知识有限。如果我问了什么蠢问题,请原谅。
我正在创建一个活动,它有开始和停止按钮。当用户点击开始按钮时,服务必须启动;当停止按钮被点击时,服务必须停止。
现在,我希望在单击开始按钮(服务开始运行)时禁用开始按钮,并且当单击停止按钮时,我希望看到开始按钮作为正常可点击按钮。
我已经通过创建按钮对象使用了.setEnabled(false)。 我需要帮助...提前感谢。
我是编程世界的新手,我的知识有限。如果我问了什么蠢问题,请原谅。
我正在创建一个活动,它有开始和停止按钮。当用户点击开始按钮时,服务必须启动;当停止按钮被点击时,服务必须停止。
现在,我希望在单击开始按钮(服务开始运行)时禁用开始按钮,并且当单击停止按钮时,我希望看到开始按钮作为正常可点击按钮。
我已经通过创建按钮对象使用了.setEnabled(false)。 我需要帮助...提前感谢。
int count = 0;
if (count == 0) {
stop.setEnabled(false);
PlayButton.setEnabled(true);
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.play:
count++;
play.setEnabled(false);
Toast.makeText(this, "Button Disabled", Toast.LENGTH_LONG).show();
Stopbutton.setEnabled(true);
break;
case R.id.stop:
Toast.makeText(this, "Button Disabled", Toast.LENGTH_LONG).show();
count--;
PlayButton.setEnabled(true);
stop.setEnabled(false);
break;
}
}
& 请查看此链接 如何禁用Android按钮?
您也可以尝试:-
启用按钮 -
button.setClickable(true);
禁用按钮的方法-
button.setClickable(false);
public void onClick(View v) {
if(v.getId() == R.id.button1)
{
Button btn = (Button)findViewById(R.id.buton1);
btn.setEnabled(false);
}
}
如果您想从另一个类禁用它,可以使用这个方法,
Button btn = ((MainActivity)context).findViewById(R.id.myButton);
btn.setEnabled(false); //or (true) to enable it
public class MyClass extends AppCompatActivity {
Context context;
当我需要执行一个操作但又不希望用户一直点击按钮时,我通常在onPreExecute和onPostExecute中使用它。
@Override
protected void onPreExecute() {
//some actions to be performed or set before executing task
Button btn = ((MainActivity)context).findViewById(R.id.myButton);
btn.setEnabled(false);
}
@Override
protected void onPostExecute() {
//some actions to be performed or set after executing task
Button btn = ((MainActivity)context).findViewById(R.id.myButton);
btn.setEnabled(true);
}
myButton.setOnClickListener {
it.isClickable = false // to disable clicking on button
it.isEnabled = false // to disable button
}
不要忘记这里的视图是 it
试试这个:
MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
public class MainActivity extends Activity {
private Button start, stop;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button)findViewById(R.id.start);
stop = (Button)findViewById(R.id.stop);
start.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
start.setVisibility(View.GONE);
/* do something else */
}
});
stop.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
start.setVisibility(View.VISIBLE);
/* do something else */
}
});
}
}
还有你的布局文件 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/start"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Start"
android:visibility="visible"
/>
<Button
android:id="@+id/stop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Stop"
android:visibility="visible"
/>
为按钮初始化OnClickListener。在第一个按钮内,只需将setEnable()设置为false..并从第二个按钮的click listener中将setEnable设置为true。
享受吧!
如果你想在按钮点击后使其不可见,那么首先像Vipin所说的那样将其禁用,然后添加这个.setVisibility(View.INVISIBLE);
,这将在按钮点击后隐藏按钮,当你想再次使其可见时,请使用.setVisibility(View.VISIBLE);
注意:如果你想让按钮不可见,并且不想让它占用布局空间,则可以使用View.GONE
而不是View.INVISIBLE
我希望我表达清楚了。
onclick(){
btn.setEnabled(false);
btn.setClickable(false);
//yourwork
myWork();
}
myWork(){
//your tasks.
btn.setEnabled(true);
btn.setClickable(true);
}
button.setOnClickListener(null);
来取消事件监听器。此外,您可以更改背景可绘制对象以使其具有禁用效果。
.setEnabled(false)
时会发生什么?您能否更具体地说明您期望的输出以及您得到的内容? - Nav