Ich habe ein Problem mit einem TableLayout. Ich versuche, alle Inhalte zu verbergen, wenn ich auf "Löschen" klicke. Allerdings funktioniert es nur, wenn ich zweimal auf die Schaltfläche klicke. Ich habe auch zwei Radiobuttons, die dieses Tabellenlayout verbergen oder zeigen. Seltsame Sache ist, dass es funktioniert, wenn ein Klick auf ein Optionsfeld mit dem exakt gleichen Code: setVisibility(View.GONE)
und setVisibility(View.VISIBLE)
.TableLayout Visibility GONE funktioniert nur beim zweiten Klick auf die Schaltfläche
Wenn Sie mir helfen könnten, wäre es toll. Hier
ist der Code:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_task_validation);
setTitle("Task Validation");
// set the custom dialog components - text, image and button
final RadioGroup radioGroupTask = (RadioGroup) findViewById(R.id.radioGroup);
radioGroupTask.clearCheck();
noteLayout = (TableLayout) findViewById(R.id.noteLayout);
radioGroupTask.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
RadioButton rb = (RadioButton) group.findViewById(checkedId);
if (rb != null && checkedId > -1) {
switch (checkedId) {
// If task Failed
case R.id.taskFailedRadioButton:
taskCompeleted = 0;
noteLayout.setVisibility(View.GONE);
note = 0;
break;
case R.id.taskCompletedRadioButton:
taskCompeleted = 1;
noteLayout.setVisibility(View.VISIBLE);
break;
}
}
}
});
Button clear = (Button) findViewById(R.id.clearDialogButton);
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noteLayout.setVisibility(View.GONE);
resetButtonBackground();
note = -1;
taskCompeleted = -1;
radioGroupTask.clearCheck();
}
});
}
Und die XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp">
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@+id/recordNameTV"
android:id="@+id/radioGroup">
<RadioButton
android:id="@+id/taskFailedRadioButton"
style="?android:attr/radioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/task_failed" />
<RadioButton
android:id="@+id/taskCompletedRadioButton"
style="?android:attr/radioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/task_completed" />
</RadioGroup>
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/noteLayout"
android:layout_below="@+id/radioGroup"
android:layout_above="@+id/linearLayout"
android:visibility="gone">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/note1"
android:text="1"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note2"
android:text="2"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note3"
android:text="3"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/note4"
android:text="4"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note5"
android:text="5"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note6"
android:text="6"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/note7"
android:text="7"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note8"
android:text="8"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
<Button
android:id="@+id/note9"
android:text="9"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/note10"
android:text="10"
android:layout_weight="1"
style="?android:attr/buttonBarButtonStyle"/>
</TableRow>
</TableLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:id="@+id/linearLayout">
<Button
android:id="@+id/clearDialogButton"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/clearText" />
</LinearLayout>
</RelativeLayout>
Dank!
haben Sie versucht, clearChecks() vom Button Click Listener zu entfernen? –
'radioGroupTask.clearCheck();' wird den 'onCheckedChange' Callback auslösen und Ihr Layout wird wieder geändert. – chrjs
Oh ja, das war's! Ich habe den clearCheck() vorher hinzugefügt und es funktioniert gut! Danke ! – Maxouille