2017-03-12 4 views
1

私は現在、プルダウンするたびにそのOnRefreshメソッドを呼び出さないSwipeRefreshLayoutを持っています。私のコードに何か問題がありますか?SwipeRefreshLayoutリスナーがonRefresh()を呼び出さないようにします

public class MainActivity extends AppCompatActivity { 
private SwipeRefreshLayout swipe_view; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    swipe_view = (SwipeRefreshLayout) findViewById(R.id.this_will_work); 

    swipe_view.setOnRefreshListener(new OnRefreshListener() 
    { 
     @Override 
     public void onRefresh() 
     { 
      Toast.makeText(getApplicationContext(), "OnRefresh() test", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

答えて

3

あなたは、サービスまたは以下のように更新されます何かを持っている必要があります。その後、最新の情報に更新を

private void refresh() { 
    startService(new Intent(this, UpdaterService.class)); 
} 

を:

mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout); 
    mSwipeRefreshLayout.setOnRefreshListener(this); 
    mSwipeRefreshLayout.post(new Runnable() { 
           @Override 
           public void run() { 
            mSwipeRefreshLayout.setRefreshing(true); 
            refresh(); 
           }}); 

//here refreshed Item 
    //getLoaderManager().initLoader(0, null, this); 

    if (savedInstanceState == null) { 
     refresh(); 
    } 

とあなたのonRefresh()は同じ方法refresh()が含まれている必要があります。

+0

'this'は次のようなエラーを投げます:'第3引数のタイプが間違っています。見つかった: 'my.app.name.MainActivity'、必須: 'android.app.LoaderManager.LoaderCallbacks ' ' –

+1

onLoadFinish 'getLoaderManager()を使用していない場合は、この行をハッシュすることができます。initLoader( 0、null、this); ' – Ibrahim

+0

まだ、私がリフレッシュするためにプルダウンしているときは、私のメソッドのどれも呼び出されません。また、 'setColorSchemeResources()'は呼び出されたときに色を変更しないので、私のアプリで何かが壊れていると思います。 +1 –

関連する問題