2013-08-09 3 views
1

В моей onResume() я бегу новый обработчик, который запускает следующую строку кода:Использование «это» в Runnable внутри фрагмента Android

adapter = new FeedListAdapter(this, feed); 
list.setAdapter(adapter); 

Теперь, когда я перехожу этот код в обработчике this внутри первую линия становится запрещена, потому что очевидно, что внутри исполняемым, как показано здесь:

new Handler().postDelayed(new Runnable() { 
    public void run() { 
     adapter = new FeedListAdapter(this, feed); 
     list.setAdapter(adapter); 
    } 
}, 500); 

Теперь мой вопрос, как я достигаю фрагмент я нахожусь без необходимости создавать метод/переменный, хранящие текущий фрагмент ?

меня вокруг вопроса, выполнив следующие действия:

private FeedListActivity myInstance(){ 
    return this; 
} 

И меняется this к myInstance(), но мне кажется, плохой способ сделать это. То же самое с созданием новой переменной для хранения фрагмента. Есть ли способ, которым я могу назвать Фрагмент, из которого я бегу?

Возможно, это станет ясно, что я хочу сделать:

new Handler().postDelayed(new Runnable() { 
    public void run() { 
     adapter = new FeedListAdapter(getFragment(), feed); 
     list.setAdapter(adapter); 
    } 
}, 500); 

Все ответы приветствуются.

ответ

6

Вы используете внутренний класс, он неявно ссылается на внешний класс. Вы можете использовать синтаксис: FeedListActivity.this внутри внутреннего класса.

+0

Понятия не имею, почему я этого не сделал в первую очередь. Думаю, поздние ночные промахи! (также, не может принять в течение 8 минут) – whitfin

Смежные вопросы