Отключение текстовых полей по нажатию кнопки и одновременное включение другой кнопки
Я бы хотел:
мои текстовые поля 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);
}
Надеюсь это поможет