我正在使用Android Studio开发我的第一个应用程序,并且我经常遇到一个问题:在具有多个按钮的页面/活动中,我对所有按钮使用相同的代码,调试或创建APK时没有问题,...但是一个按钮使该应用在我的手机上崩溃。 (而其他按钮正常工作)有什么明显的我想念的东西吗?
例如:这里“ btnNo”会使页面崩溃,而“ btnMaybe”可以正常工作:
Java:
`包com.sarahd.anitav5;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnYes = (Button) findViewById(R.id.btnYes);
Button btnMaybe = (Button) findViewById(R.id.btnMaybe);
Button btnNo = (Button) findViewById(R.id.btnNo);
btnYes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentYes = new Intent(MainActivity.this, MenuActivity.class);
startActivity(intentYes);
}
});
btnMaybe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentMaybe = new Intent(MainActivity.this, MaybeActivity.class);
startActivity(intentMaybe);
}
});
btnNo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentNo = new Intent(MainActivity.this, NoActivity.class);
startActivity(intentNo);
}
});
}
}`
xml:
`
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
<Button
android:id="@+id/btnYes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button Yes"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
<Button
android:id="@+id/btnMaybe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button Maybe"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
/>
<Button
android:id="@+id/btnNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ButtonNo"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>`
或者是NoActivity的问题?这是JAVA:
`package com.sarahd.anitav5;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class NoActivity extends AppCompatActivity {
Button btnBye;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_no);
btnBye = (Button) findViewById(R.id.btnBye);
btnBye.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentBye = new Intent(NoActivity.this, MainActivity.class);
startActivity(intentBye);
}
});
}
}`
这是NoActivity XML:
`
<TextView
android:id="@+id/noTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/noTitle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@id/subtitleNo"
app:layout_constraintTop_toTopOf="parent"
android:textSize="@dimen/titleSize"
/>
<TextView
android:id="@+id/subtitleNo"
android:text="@string/subtitleNo"
android:textSize="@dimen/subtitleSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="60dp"
android:gravity="center_horizontal"
app:layout_constraintBottom_toTopOf="@id/noImage"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/noTitle"
/>
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5"
/>
<ImageView
android:id="@+id/noImage"
android:src="@drawable/autruche_pas_contente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/guideline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<TextView
android:id="@+id/noText"
android:text="@string/noText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/noImage"
/>
<Button
android:id="@+id/btnBye"
android:text="@string/btnBye"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/noText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>`
非常感谢您的帮助!
问题出在您的no_activity.xml
布局中。您正在将支持GuideLine与androidX约束布局一起使用。
使用androidx.constraintlayout.widget.Guideline
代替android.support.constraint.Guideline