Отключение текстовых полей по нажатию кнопки и одновременное включение другой кнопки

Я бы хотел:

мои текстовые поля textInput & textInput2 а также btnClickMe отключен & button2 включается, когда я нажимаю на кнопку Bevestig weddenschap,

Я не могу понять, как это сделать. Можете ли вы помочь мне?

XML-код:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/details_frankrijk"
    android:textSize="17sp"
    android:id="@+id/tvDetails"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/positie"
    android:id="@+id/lblOutput"
    android:layout_below="@+id/tvDetails"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="28dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtInput"
    android:layout_below="@+id/lblOutput"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/lblOutput"
    android:layout_alignEnd="@+id/lblOutput" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/bedrag"
    android:id="@+id/lblOutput2"
    android:layout_below="@+id/txtInput"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/txtInput2"
    android:layout_below="@+id/lblOutput2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/lblOutput2"
    android:layout_alignEnd="@+id/lblOutput2" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/bevestig_weddenschap"
    android:id="@+id/button"
    android:layout_below="@+id/plaatsbet"
    android:layout_toRightOf="@+id/tvDetails"
    android:layout_toEndOf="@+id/tvDetails"
    android:onClick="btnClickMe" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="@string/plaats_de_weddenschap"
    android:id="@+id/plaatsbet"
    android:layout_below="@+id/txtInput2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/volgende"
    android:id="@+id/button2"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:clickable="false" />

Java-код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tweedescherm);
    TextView tvDetails = (TextView) findViewById(R.id.tvDetails);

    Intent i = getIntent();
    //haal data van de intents en zet deze in de textview
    tvDetails.setText(i.getIntExtra("details", R.string.details_frankrijk));

}

public void btnClickMe (View v) {
    TextView tvDetails = (TextView) findViewById(R.id.tvDetails);
    EditText txtInput = (EditText) findViewById(R.id.txtInput);
    TextView lblOutput = (TextView) findViewById(R.id.lblOutput);
    EditText txtInput2 = (EditText) findViewById(R.id.txtInput2);

    lblOutput.setText("Het land " + tvDetails.getText().toString() + " haalt in het EK volgens jou positie " + txtInput.getText().toString() + ". Je hebt hiervoor " + txtInput2.getText().toString() + " euro ingezet.");

}

}

2 ответа

Для использования EditText editText.setEnabled(false); в комбинации с editText.setFocusable(false);

Только для кнопки button.setEnable(false) будет достаточно.

Ты можешь использовать .setEnabled(false) для EditText с и .setClickable(false) для Button и переключать логическое значение, когда Button Bevestig weddenschap нажали

лайк

 txtInput.setEnabled(false);
 txtInput2.setEnabled(false);
 button.setEnabled(false);

и когда кликают по Bevestig weddenschap, переключить логическое значение

 txtInput.setEnabled(true);
 txtInput2.setEnabled(true);
 button.setEnabled(true);

РЕДАКТИРОВАТЬ сначала wirte пользовательской функции

 private void setDisableOrEnable(boolean flag) {
   txtInput.setEnabled(flag);
   txtInput2.setEnabled(flag);
   button.setEnabled(flag);
 }

в первый раз onCreate() вызвать функцию setDisableOrEnable(false) и на кнопку Bevestig Weddenschap нажмите кнопку вызова setDisableOrEnable(true)

и будь уверен txtInput, txtInput2 а также button инициализируется перед вызовом setDisableOrEnable(false) на onCreate()

Так что ваши onCreate() будет выглядеть примерно так

  EditText txtInput;
  TextView lblOutput; 
  EditText txtInput2;
  TextView tvDetails;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_tweedescherm);
  tvDetails = (TextView) findViewById(R.id.tvDetails);
  txtInput = (EditText) findViewById(R.id.txtInput);
  lblOutput = (TextView) findViewById(R.id.lblOutput);
  txtInput2 = (EditText) findViewById(R.id.txtInput2);

  setDisableOrEnable(false);

  Intent i = getIntent();
  //haal data van de intents en zet deze in de textview
  tvDetails.setText("" + i.getIntExtra("details", R.string.details_frankrijk));

  }


public void btnClickMe (View v) {

    setDisableOrEnable(true);
    lblOutput.setText("Het land " + tvDetails.getText().toString() + " haalt in het EK volgens jou positie " + txtInput.getText().toString() + ". Je hebt hiervoor " + txtInput2.getText().toString() + " euro ingezet.");

 }

 private void setDisableOrEnable(boolean flag) {
   txtInput.setEnabled(flag);
   txtInput2.setEnabled(flag);
   button.setEnabled(flag);
 }

Надеюсь это поможет

Другие вопросы по тегам