У меня есть основное занятие, где у пользователя есть 3 списка и 3 кнопки. Когда пользователь нажимает на 2 из трех кнопок, я хочу, чтобы пользователь был отправлен на другой экран (другой макет). У меня уже есть два других макета и два других класса. Я не уверен, почему это не работает. Мое приложение не сообщает ни об ошибках, ни предупреждениях, и я обнаружил, что не могу пошагово просмотреть свой код, потому что мой отладчик не работает.
У меня есть OnClickListner
(в настоящее время я просто тестирую по одной кнопке за раз, чтобы исправить проблему), которая связана с кнопкой в основной активности layout.xml android:OnClick
. У меня есть намерение, установленное в основном действии, которое (согласно нескольким источникам и учебным пособиям на YouTube) настроено правильно, и новое действие, на которое должен быть перенаправлен пользователь, связано с соответствующим макетом. Когда я запускаю приложение, регистрируется нажатие кнопки (я знаю это, потому что у меня есть звуковой эффект при нажатии кнопки), но больше ничего не происходит. Также все мои действия присутствуют в файле AndroidManifest.xml
. И все файлы действий находятся на одном уровне папок, все макеты находятся в res / layout
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// instantiate button
Button btnClicked = (Button)findViewById(R.id.goal);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.click);
btnClicked.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,
ChangeGoal.class));
mp.start();
}
});
// method called when set goal button is clicked
public void setGoal(View view)
{
// intent to send user from main activity to the change goal
activity
Intent setGoal = new Intent(this, ChangeGoal.class);
startActivity(setGoal);
}
}
public class ChangeGoal extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_change_goal); // connect
class to the other layout
}
}
//button from activity_main.xml
<Button
android:id="@+id/goal"
android:layout_width="200dp"
android:layout_height="200dp"
android:text="@string/Set"
android:onClick="setGoal"
android:textSize="20sp"
android:textColor="#000000"/>`
Опять же, я ожидаю, что нажатие кнопки из основного действия отправит пользователя в новое действие, где ему нужно сделать выбор, а затем вернуться к основному действию. Пока что нажатие кнопки регистрируется (я слышу это, поскольку я уже включил звук при нажатии кнопки), но приложение ничего не делает, я остаюсь на том же экране, и кнопку можно нажимать снова и снова.