添加向下滑動,刷新功能這是我的標籤視圖在MainActivity佈局如何在標籤視圖佈局
package com.nitol.aust.cse.austclassmanager;
public class ResultCheckActivity extends AppCompatActivity implements
NavigationView.OnNavigationItemSelectedListener{
private TabLayout t1;
private ViewPager vp1;
Toolbar toolbar;
DrawerLayout drawerLayout;
NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.navi_draw_result);
t1 = (TabLayout) findViewById(R.id.tab1);
vp1 = (ViewPager) findViewById(R.id.ViewPager1);
setUpMyViewPager(vp1);
t1.setupWithViewPager(vp1);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout) ;
navigationView = (NavigationView) findViewById(R.id.navigation_view);
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle
(this,drawerLayout,toolbar, R.string.open_drawer, R.string.close_drawer);
drawerLayout.setDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
navigationView.getMenu().getItem(5).setChecked(true);
}
void setUpMyViewPager(ViewPager vp){
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addMyFragment(new WebViewEvents(),"News & Events");
viewPagerAdapter.addMyFragment(new WebViewAcademic(),"Academic Calendar");
viewPagerAdapter.addMyFragment(new WebViewTheory(),"Theory Results");
viewPagerAdapter.addMyFragment(new WebViewLab(),"Lab Results");
viewPagerAdapter.addMyFragment(new WebViewTeacher(),"Faculty Members");
vp.setAdapter(viewPagerAdapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> my_list = new ArrayList<Fragment>();
private final List<String> my_title = new ArrayList<String>();
public ViewPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
return my_list.get(position);
}
@Override
public int getCount() {
return my_list.size();
}
void addMyFragment(Fragment f, String title){
my_list.add(f);
my_title.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return my_title.get(position);
}
}
@Override
public void onBackPressed() {
if(drawerLayout.isDrawerOpen(GravityCompat.START)){
drawerLayout.closeDrawer(GravityCompat.START);
}
else{
super.onBackPressed();
}
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
switch (id){
case R.id.home:
Intent intent0 = new Intent(ResultCheckActivity.this, MenuActivity.class);
startActivity(intent0);
finish();
break;
case R.id.routine:
Intent intent = new Intent(ResultCheckActivity.this, ClassRoutineActivity.class);
startActivity(intent);
finish();
break;
case R.id.cgpa:
Intent intent2 = new Intent(ResultCheckActivity.this, CgpaCalculator.class);
startActivity(intent2);
finish();
break;
case R.id.details:
Toast.makeText(getApplicationContext(),"Class Details",Toast.LENGTH_SHORT).show();
break;
case R.id.quiz:
Toast.makeText(getApplicationContext(),"Quiz Reminder",Toast.LENGTH_SHORT).show();
break;
case R.id.result:
break;
case R.id.profile:
Intent intent3 = new Intent(ResultCheckActivity.this, ProfileActivity.class);
startActivity(intent3);
finish();
break;
case R.id.about:
Toast.makeText(getApplicationContext(),"About",Toast.LENGTH_SHORT).show();
break;
case R.id.settings:
Intent intent4 = new Intent(ResultCheckActivity.this, Settings.class);
startActivity(intent4);
finish();
break;
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_tool,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if(id == R.id.tool_settings){
Intent intent = new Intent(ResultCheckActivity.this, Settings.class);
startActivity(intent);
}
else if(id == R.id.tool_about){
Toast.makeText(getApplicationContext(),"This is About !", Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(item);
}
}
,這是我的標籤,我想補充的刷新功能
void setUpMyViewPager(ViewPager vp){
ViewPagerAdapter viewPagerAdapter = new
ViewPagerAdapter(getSupportFragmentManager());
viewPagerAdapter.addMyFragment(new WebViewEvents(),"News & Events");
viewPagerAdapter.addMyFragment(new WebViewAcademic(),"Academic Calendar");
viewPagerAdapter.addMyFragment(new WebViewTheory(),"Theory Results");
viewPagerAdapter.addMyFragment(new WebViewLab(),"Lab Results");
viewPagerAdapter.addMyFragment(new WebViewTeacher(),"Faculty Members");
vp.setAdapter(viewPagerAdapter);
}
現在假設我想在「WebViewEvents」類中添加刷新。下面
package com.nitol.aust.cse.austclassmanager;
public class WebViewEvents extends Fragment {
View v;
WebView wb4;
private String currentUrl = "http://aust.edu/news_events.htm";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.webview_event, container,false);
wb4 = (WebView) v.findViewById(R.id.webView_event);
wb4.setInitialScale(1);
wb4.getSettings().setJavaScriptEnabled(true);
wb4.getSettings().setLoadWithOverviewMode(true);
wb4.getSettings().setUseWideViewPort(true);
wb4.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
wb4.setScrollbarFadingEnabled(false);
wb4.loadUrl(currentUrl);
wb4.setWebViewClient(new WebViewClient());
wb4.getSettings().setBuiltInZoomControls(true);
wb4.getSettings().setUseWideViewPort(true);
wb4.getSettings().setLoadWithOverviewMode(true);
wb4.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
return v;
}
}
類給予我發現了一些說明,但這裏最大的的是說,我必須@Override onRefresh()方法...但我聲明我的課作爲一種非活性類。所以在一個非活動類中,我不能重寫一個方法。這就是爲什麼我沒有找到我的解決方案...
我想在非活動類添加此。所以在非活動類中,不可能重寫一個方法。這就是爲什麼我面臨問題 –
@NitolDasNeel你想添加刷卡刷新到你的'公共類WebViewEvents擴展Fragment'?如果是,那麼只需在我的答案中將'activity'替換爲'fragment'(將SwipeRefreshLayout添加到片段佈局,找到它並提供onRefreshListener)。請注意,你說在一個非活動類中重寫onRefresh方法是不可能的,但Activity也沒有onRefresh方法,所以你不能覆蓋這樣的方法。你可以做的是通過你的活動/片段實現監聽器,如下所示:'public class WebViewEvents extends Fragment implements SwipeRefreshLayout.OnRefreshListener' – krossovochkin
然後,你可以(如何調用它)重寫onRefresh方法(但實際上是實現並且不覆蓋) – krossovochkin