Как перейти от занятия 2 к занятию 3 в студии android - PullRequest
0 голосов
/ 24 апреля 2020

Я создал три вида деятельности. Моя первая функция MainActivity имеет две кнопки: одну для перехода в Activity2, а другую - для Activity3. Обе эти кнопки работают, мне удалось правильно их кодировать.

Но затем в Activity3 есть кнопка, которая должна перенести вас также в Activity2, и она не работает. Я пробовал несколько вещей, но я не могу понять это. Можно ли кодировать несколько кнопок, которые ведут к одной и той же активности? Если так, пожалуйста, помогите, потому что я новичок в кодировании и прочем. Также вот как я кодировал кнопки:

1 - после создания упражнения я go в файл Java и создаю новый класс. В этом классе я пишу следующий код:

class className : AppCompatActivity(){
    override fun onCreate (savedInstance : Bundle?){
        super.onCreate(savedInstance)
        setContentView(R.layout.activity2)
    }
}

Затем я добавляю его в манифест

2, затем я go возвращаю в MainActivity и записываю это:

val anyName = buttonName
anyName.setOnClickListener {
    startActivity(Intent(this, class Name :: class.java))
}

Конечно, android studio заботится обо всем и импортирует все, что нужно, но в секунду, когда я добавляю более двух из них в свой MainActivity, происходит сбой всего приложения.

Пожалуйста, объясните это настолько просто, насколько это возможно, опять же, я действительно новичок в кодировании и android студии.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 24 апреля 2020

При создании нового действия также необходимо добавить в него новый файл XML, который будет отображать пользовательский интерфейс на странице действия.

Вы можете сделать это двумя способами: 1. Пользовательский. Создайте новый ClassName.kt (Java .class в Java) и прикрепите внутри onCreate() метод макет XML, который будет отображать все views на странице действий. 2. С Android Studio. Просто щелкните правой кнопкой мыши в папке package name, где, например, появляется пустое действие, когда вы запускаете новый Android Studio Project. Затем выберите new, затем в нижней части раскрывающегося списка выберите тип нового действия, которое вы хотите. Например, это Empty Activity. Итак, давайте суммируем вышеуказанную информацию: щелкните правой кнопкой мыши на папке package name -> new -> type of activity.

Для чего ниже информация? Я вижу в вашем примере кода, который вы показываете как код в Деятельности № 3, что у вас есть в onCreate() этой строке кода setContentView(R.layout.activity2). Это строка означает, что вы добавляете XML файл в вашу деятельность. Один файл XML для действия можно использовать только для одного действия, если вы хотите показать, после click на кнопке другое действие. Скорее вы увидите только один экран, потому что два действия используют один макет. Итак, проверьте, что ваши действия должны быть примерно такими:

1.In ActivityOne.

class ActivityOne : Activity() {
override fun onCreate (savedInstance : Bundle?) {
  super.onCreate(savedInstance)
  setContentView(R.layout.activity1)

  }

}

1.In ActivityTwo.

class ActivityOne : Activity() {
override fun onCreate (savedInstance : Bundle?) {
  super.onCreate(savedInstance)
  setContentView(R.layout.activity2)

  }

}

1.In ActivityThree .

class ActivityThree : Activity() {
override fun onCreate (savedInstance : Bundle?) {
  super.onCreate(savedInstance)
  setContentView(R.layout.activity3)

  }

}
0 голосов
/ 26 апреля 2020

Убедитесь, что если вы хотите создать new activity Сначала щелкните правой кнопкой мыши app, затем перейдите new -> Activity -> Empty Activity.

, наконец, вы можете добавить onClick в свой тег Button, а затем использовать startActivity method.

public void methodName(View view) {
        startActivity(new Intent(this,ActivityName.class));
    }

Пример кода:

MainActivity. java:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void gotoTwo(View view) {
        startActivity(new Intent(this,Activity2.class));
    }

    public void gotoThree(View view) {
        startActivity(new Intent(this,Activity3.class));
    }
}

activity_main. xml:

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="200dp"
        android:layout_marginRight="240dp"
        android:onClick="gotoTwo"
        android:text="Activity2" />

Не забудьте создать новый java Вы должны создать новый xml файл тоже

0 голосов
/ 24 апреля 2020

К go вернувшись к деятельности, вы можете просто использовать fini sh () для любой функции, но если вы хотите взять с собой какую-либо информацию, вам следует поискать дополнительную информацию о startActivityforResult ().

Однако в следующий раз загрузите код, а не этот псевдокод, пожалуйста, это очень поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...