@lesia43

Как изменить код Activity на код Fragment?

Здраствуйте, недавно начал пользоваться Android Studio, написал программу типо заметок в Activity но случилось так что надо этот Activity переписать под Fragment. Искал на разных сайтах решение но не особо понял как, если кто-то знает как это сделать то вод код самого Activity очень сильно прошу вас помочь

import android.os.Bundle;
 
import com.arhiser.todolist.R;
import com.arhiser.todolist.model.Note;
import com.arhiser.todolist.screens.details.NoteDetailsActivity;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
 
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
 
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
 
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
    private RecyclerView recyclerView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        recyclerView = findViewById(R.id.list);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
 
        final Adapter adapter = new Adapter();
        recyclerView.setAdapter(adapter);
 
        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                NoteDetailsActivity.start(MainActivity.this, null);
            }
        });
 
        MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
        mainViewModel.getNoteLiveData().observe(this, new Observer<List<Note>>() {
            @Override
            public void onChanged(List<Note> notes) {
                adapter.setItems(notes);
            }
        });
    }
}
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
onCreate переедет в onCreateView
findViewById() придется звать от view, которое через инфлайтер получишь из лайота.
вместо this там где требуется контент формы будешь использовать getActivity() или requireActivity()

В общем создай пустую форму с фрагментом через визард и потихонку перетаскивай.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы