Ich weiß, dass ähnliche Fragen schon einmal gestellt wurden, aber ich konnte keinen Thread finden, der mein Problem gelöst hat. Ich habe zwei überlappende Elemente (Layout und Button), auf denen ich die Sichtbarkeit durch eine Callback-Methode ändere. Das komische Ding ist, es funktioniert das erste Mal, aber wenn ich es das zweite Mal versuche, funktioniert es nicht. Wenn ich auf die Schaltfläche im Layout klicke, wird das Layout auf View.GONE
gesetzt und die andere Schaltfläche btn
wird auf View.VISIBLE
gesetzt. Wenn ich auf den Button btn
klicke, wird eine andere Aktivität gestartet und von dieser Aktivität wird diese Aktivität erneut gestartet. Das ist, wenn die Sichtbarkeit nicht wieder umgeschaltet werden kann, aber wenn ich die gesamte Anwendung neu starte, funktioniert es das erste Mal. Ich habe auch einen Handler anstelle von runOnUiThread(..)
verwendet und es hat immer noch nicht funktioniert. Ich habe auch den Status der Sichtbarkeit überprüft, der Status ist sichtbar, wird jedoch immer noch nicht angezeigt.setVisibility (int) funktioniert nicht zum zweiten Mal in einem Callback
Dies ist mein Code:
<LinearLayout
android:id="@+id/buttonLayout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="300px"
android:weightSum="1">
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="x"
android:textColor="@android:color/white"
android:id="@+id/testNoBtn"
android:onClick="onClick1"
android:background="#f44336"
android:layout_weight="0.45"
android:enabled="false"
android:visibility="visible"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.1"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="✔"
android:textColor="@android:color/white"
android:id="@+id/yesBtn"
android:onClick="onClick2"
android:background="#4caf50"
android:layout_weight="0.45"
/>
</LinearLayout>
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="see result"
android:background="#03a9f4"
android:textColor="@android:color/white"
android:layout_alignParentBottom="true"
android:layout_marginTop="300px"
android:onClick="onContinueClicked"
android:visibility="invisible"
/>
Dies ist die nächste Aktivität:
public class Result extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
...
}
public void tryAgain(){
startActivity(new Intent("android.intent.action.FirstActivity"));
}
}
Anstelle der überlappenden Schaltfläche verwenden Sie eine einzelne Schaltfläche und ändern den Listener, sobald Sie darauf klicken. –
@ShreyashSSarnayak Nun, die Sache ist, ich habe eigentlich zwei Tasten nebeneinander und dann eine andere Taste, die diese beiden Tasten überlappt, so dass Ihre Lösung nicht funktioniert –
Wie starten Sie Ihre andere Aktivität und starten aktuelle Aktivität neu? – MoQ93