2013-04-05 3 views
1

Как создать функцию без конечного аргумента, которая включает Runnable()?Функция без конечного аргумента, которая включает Runnable()

public void scroll(int scroll_to) { 
     final HorizontalScrollView scrl = (HorizontalScrollView)findViewById(R.id.horizontalScrollView1); 
     scrl.post(new Runnable() { 
      public void run() { 
       scrl.scrollTo(0, scroll_to); 
      } 
     }); 
    } 

Но это не может относиться к неконечным scroll_to переменному. Как выполнять универсальную функцию для прокрутки? Без Runnable он не всегда работает.

ответ

5

Как насчет этого?

public void scroll(int scroll_to) 
{ 
    final int x = scroll_to; 
    final HorizontalScrollView scrl = (HorizontalScrollView)findViewById(R.id.horizontalScrollView1); 
    scrl.post(new Runnable() 
    { 
     public void run() 
     { 
      scrl.scrollTo(0, x); 
     } 
    }); 
} 
1

Вы можете передать значение scrl на ваш работоспособный во время строительства, а не ссылаться на него с вашего работоспособным.

protected class MyRunnable implements Runnable { 
    protected HorizontalScrollView scrl; 

    public SetStatusIconRunnable(HorizontalScrollView scrl, int scrollTo) { 
     mScrl = val; 
        mScrollTo = scrollTo; 
    } 

    @Override 
    public void run() { 
     mScrl.scrollTo(0, mScrollTo); 
    } 
} 
+0

Откуда х? – WilQu

+0

из копирования и вставки :) исправлено –

1

Вы можете сделать scroll_to окончательный. Он также работает с аргументами метода.

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