Приложение вылетает, когда я открываю его с фрагментами

akroma спросил: 14 ноября 2017 в 06:42 в: android

У меня проблема:

Я пытаюсь создать приложение с 2 кнопками на макете, и эти кнопки открывают 2 разных фрагмента, но проблема в том, что при открытии приложения происходит сбой.

Вот мой код:

MainActivity:

package com.example.akroma.feina_final;import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    Button boton1,boton2;    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);        boton1 = (Button) findViewById(R.id.button2);
        boton1.setOnClickListener(this);
        boton2 = (Button) findViewById(R.id.button);
        boton2.setOnClickListener(this);    }    @Override
    public void onClick(View v) {        Fragment fragment;        android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
        android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();        switch (v.getId()) {
            case R.id.button:                fragment = new FragmentOne();
                ft.replace(R.id.fragment_container, fragment);
                ft.commit();
                break;            case R.id.button2:
                fragment = new FragmentTwo();
                ft.replace(R.id.fragment_container, fragment);
                ft.commit();
                break;
        }
    }}

Я создал стандарт фрагментов (пустой).

Имя фрагментов:

FragmentOneFragmentTwo

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:orientation="vertical"
    tools:context="com.example.akroma.feina_final.MainActivity">    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Mapa" />        <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Negocis" />    </LinearLayout>    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">        <fragment
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />    </LinearLayout></LinearLayout>

Имя фрагментов в дереве:

FragmentOne

FragmentTwo

Редактировать: ошибка: ошибка надувания фрагмента класса

Решение для надувания:

Благодаря: @svkaka

Change the fragment for:    <View
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

Новая ошибка:

должна реализовывать OnFragmentInteractionListener

Есть идеи? Я не знаю, что я делаю плохо.

Заранее спасибо


0 ответов