我是編程界的新手,我的知識是有限的。請原諒我,如果我問任何錯誤。 我的問題是。點擊禁用按鈕
我正在創建一個有START & STOP按鈕的活動。當用戶點擊開始按鈕時,服務必須開始;並停止服務必須停止。
現在我想禁用我開始按鈕,當我點擊開始按鈕(服務啓動上單擊開始按鈕),當點擊停止按鈕,我想看到的START鍵正常點擊按鈕。
我已經使用.setEnabled(false)通過創建按鈕對象。 我需要幫助...在此先感謝
我是編程界的新手,我的知識是有限的。請原諒我,如果我問任何錯誤。 我的問題是。點擊禁用按鈕
我正在創建一個有START & STOP按鈕的活動。當用戶點擊開始按鈕時,服務必須開始;並停止服務必須停止。
現在我想禁用我開始按鈕,當我點擊開始按鈕(服務啓動上單擊開始按鈕),當點擊停止按鈕,我想看到的START鍵正常點擊按鈕。
我已經使用.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;
}
}
中的onclick
禁用Button1的身體,因爲它獲得點擊
public void onClick(View v) {
if(v.getId() == R.id.button1)
{
Button btn = (Button)findViewById(R.id.buton1);
btn.setEnabled(false);
}
}
您可以撥打button.setOnClickListener(null);
取消事件聽者。另外,您可以更改背景繪製以使其具有禁用效果。
PS:只有嘗試這種解決方案時,沒有別的辦法。
雖然更多的優先解決方案是使用setEnabled(false)方法。 – noob 2012-03-23 12:26:55
試試這個:
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"
/>
如果你想使按鈕按鈕cleck後看不見然後第一個禁用它作爲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);
}
您也可以嘗試: -
的按鈕enable-
button.setClickable(true);
的按鈕禁止 -
button.setClickable(false);
初始化onClickListener爲button.inside拳頭按鈕簡單地做setEnable()從第二個按鈕的點擊監聽器設置setEnable假..和真正
享受
myButton.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
myButton.setEnabled(true);
}
});
}
}, 5000);
試試這個吧,作品完美
如果你想從另一個類,你可以使用該禁用,
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);
}
當你使用.setEnabled(false)時會發生什麼?你可以更具體一點,你什麼樣的輸出,你正在得到什麼 – Nav 2012-03-23 12:03:37
導航 - 它的按鈕被禁用。但是我只想按下該按鈕時禁用按鈕 – ADD 2012-03-23 12:13:57
咦?你想在點擊時禁用開始按鈕,對嗎?當停止按鈕被點擊時,你想禁用停止按鈕並啓用開始按鈕,或者我全都錯了嗎? – Araw 2012-03-23 12:17:53