2013-03-25 73 views
0

我是全新的android開發,並且在開關設置爲關閉後,我無法使editText不可編輯。問題是開關功能不起作用。即使設置爲關閉,我仍然可以編輯文本。 這裏是我的代碼:如何使android編輯文本在開關關閉時不可編輯?

public void onCreate(Bundle savedInstanceState) { 
     this.getWindow().setSoftInputMode(
       WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_profile); 
     final View switch1 = (Switch) findViewById(R.id.editSwitch); 
     final EditText mEdit = (EditText) findViewById(R.id.bioTxt); 
     switch1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       if (switch1.getContext().toString().equals("On")) { 

        mEdit.setEnabled(true); 
       } 

       else if (switch1.getContext().toString().equals("Off")) { 

        EditText mEdit = (EditText) findViewById(R.id.bioTxt); 
        mEdit.setEnabled(false); 
       } 
      } 
     }); 

    }; 
} 
+1

什麼在這裏不起作用? – 2013-03-25 02:41:52

+0

開關功能不起作用。即使設置爲關閉後,我仍然可以編輯文本。 – user2206030 2013-03-25 02:42:33

+0

刪除else語句中的EditText行。 – 2013-03-25 02:42:51

回答

2

Switch有一個函數isChecked(),如果開關處於'On'位置,它將返回true。因此,您的onClick方法可以是:

public void onClick(View v) { 
    mEdit.setEnabled(switch1.isChecked()); 
} 
+0

好的謝謝!但它的方法isChecked()未定義。 – user2206030 2013-03-25 03:08:16

+0

@ user2206030 - 確保switch1的類型是'Switch',而不是'View'。 – ianhanniballake 2013-03-25 03:48:00

+0

我正在使用相對佈局,文本視圖和開關xml是: - – user2206030 2013-03-25 04:08:34

0
switch1.getContext().toString() 

什麼是你想在這裏做什麼?視圖上的getContext返回擁有它的活動。它不會返回任何會變成「開」或「關」的內容。你需要調用一些其他功能。我不確定哪一個,因爲它看起來像是一個自定義的視圖。

+0

我有一個文本編輯的視圖,並且我想禁用在開關設置爲關閉時輸入虛文編輯的功能。 – user2206030 2013-03-25 02:48:06

+0

是的,但我不知道你的交換機是什麼類型的視圖以及它有什麼功能。我所知道的是,你絕對不想在那裏調用getContext。 – 2013-03-25 03:11:46

+0

我使用的是相對佈局,與文本視圖和開關代碼是:<開關 \t \t機器人:ID = 「@ + ID/editSwitch」 \t \t機器人:layout_width = 「WRAP_CONTENT」 \t \t機器人:layout_height = 「WRAP_CONTENT」 \t \t機器人:layout_below = 「@ + ID/Webstietxt」 \t \t機器人:layout_alignParentRight = 「真」 \t \t的android:文本= 「編輯模式」/> – user2206030 2013-03-25 03:31:15

相關問題