ListFragment и кнопка назад

Интерфейс, диалоги, темы, стили, меню
Ответить
Dont
Сообщения: 1
Зарегистрирован: 04 ноя 2015, 01:11

ListFragment и кнопка назад

Сообщение Dont » 04 ноя 2015, 23:42

Есть код Activity где сделан переход по папкам в ListFragment

Код: Выделить всё

package com.mycompany.mylistfragment;

import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class MainActivity extends Activity implements SimpleListFragment.OnArticleSelectedListener
{

	@Override
	public void onArticleSelected(String articleStr)
	{
		selectItem(articleStr);
	}

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
		if (savedInstanceState == null)
		{
			selectItem("/sdcard");
		}
    }
	private void selectItem(String str)
	{
		str = str != null ? str : "/";
		SimpleListFragment fragment = SimpleListFragment.newInstance(str);
		getFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		menu.add(0, 1, 0, "Root");
		menu.add(0, 2, 0, "SD card");
		menu.add(1, 3, 0, "Exit");
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		switch (item.getItemId())
		{
			case 1:
				selectItem("/");
				break;
			case 2:
				selectItem("/sdcard");
				break;
			case 3:
				finish();
		}
		return super.onOptionsItemSelected(item);
	}

}
Надо как-то грамотно сделать кнопку "назад", чтоб вернуться в предыдущую папку и было обновление ListFragment, это на тот случай если там произошли изменения
Вложения
ListFragment
ListFragment
Screenshot_2015-11-05-03-19-57.png (221.94 КБ) 2402 просмотра

Аватара пользователя
Elek
Сообщения: 55
Зарегистрирован: 29 май 2012, 09:57

Re: ListFragment и кнопка назад

Сообщение Elek » 16 ноя 2015, 22:28

Нужно создать Listener в фрагменте, переопределить метод:

Код: Выделить всё

@Override
    public void onBackPressed() {
        super.onBackPressed();
}
В этом методе вызывать Listener фрагмента, который обновляет данные.

Ответить