2014-06-12 54 views
0

你好我有一个android应用程序我想创建一个像锁按钮的东西,以防止错误点击应用程序中的任何按钮我使用这种方法,它很好地禁用所有按钮我喜欢,但我可以无法重新启用后,所有这一切,我需要它再次是,当我再次按下锁定按钮,它重新启用button2又一次按钮3安卓按钮禁用并启用

这是活动代码

import android.support.v7.app.ActionBarActivity; 
import android.app.ActionBar; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.view.View; 
public class AboutActivity extends ActionBarActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_about); 
     ActionBar actionBar = getActionBar(); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     addListenerOnButton(); 
} 
    Button button; 
    Button button2; 
    Button button3; 
    private void addListenerOnButton() { 
     // TODO Auto-generated method stub 
     button = (Button) findViewById(R.id.lock); 

     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       button2.setEnabled(false); //button which u want to disable 
       button3.setEnabled(false); //button which u want to disable 
      } 
     }); 
     button2 = (Button) findViewById(R.id.button2); 

     button2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

      } 
     }); 
     button3 = (Button) findViewById(R.id.button3); 

     button3.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.about, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 

这是布局代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.lock.AboutActivity$PlaceholderFragment" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

    <Button 
     android:id="@+id/lock" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="70dp" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/button2" 
     android:layout_below="@+id/button2" 
     android:layout_marginTop="66dp" 
     android:enabled="true" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/lock" 
     android:layout_centerVertical="true" 
     android:enabled="true" 
     android:text="Button" /> 

</RelativeLayout> 

回答

1

您可以使用isEnabled()并使用“not”运算符来锁定和解锁。如果未启用,则启用,反之亦然。

button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       button2.setEnabled(!button2.isEnabled()); //button which u want to disable 
       button3.setEnabled(!button3.isEnabled()); //button which u want to disable 
      } 
     }); 
+0

你的编辑工作像魅力谢谢 – mrlucfier