[prg] 2 вопроса к разработчикам приложений под android
Всех приветствую. Подскажите пожалуйста,как сделать в одной activity
сразу 2 списка. Сразу напишу,что Гугление мне почти ничего не дало.
Просто в моей программе при определённых условиях на экране должен
появляться второй список и после клика на какой-нибудь его элемент он
должен исчезать. Конечно можно было бы создать просто 2 listview и
обращаться к ним по id,но,во-первых,я читал,что ListActivity или
FragmentList смотрятся красивее,чем обычный listview,а во-вторых код
будет более громосток. Можно,конечно,создать новый адаптер для моего
списка,но когда я его установлю с помощью метода setListAdapter,то
естественно,старое содержимое списка исчезнит,что мне совсем не нужно. В
общем,кто что думает по этому поводу. Также мне не понятно,как из
другого класса выводить обычные уведомления на экран,используя класс
toast. Конечно,можно в моём классе создать объект типа MainActivity или
ListActivity,но я знаю,что это самое плохое решение,да и не факт,что
прога будет работать так как надо. В гугле я читал,что надо поработать с
классом Context,чтобы,простите меня пожалуйста за грубейшую
неточность,передать моему классу,в методах которого я буду показывать
уведомления контекст текущей activityно я не понял,как это делать.
Заранее всех благодарю за помощь.
Приветствую всех.
показывать
Чаще всего это делается через параметры конструктора вашего класса (хотя
можно предусмотреть и отдельный метод типа setContext(Context c)). Класс
Activity -- это субкласс класса Context,
поэтому при инстанцировании объекта своего класса вы можете передать this в
качестве параметра. Вот набросок примера:
/* ваш класс */
class MyClass {
/* будет хранить ссылку на контекст */
private Context mContext;
/* конструктор, который в качестве параметра получает ссылку на контекст*/
public MYClass (Context context) {
mContext = context;
}
public showMesssage (String text) {
Toast.makeText(mContext, text,...).show();
}
} /* окончен ваш класс */
/* Класс основной активности */
public class MyMainActivity extends Activity {
/* объект вашего класса */
private MyClass mMyObject;
@Override
protected void onCreate (... {
super.onCreate(...);
mMyObject = new MyClass(this);
...
}
} /* окончен класс активности */
Вместо многоточий вы должны подставить корректный код.
Посмотрите документацию Android -- очень многие классы в своих
конструкторах принимают Context в качестве параметра.