各位老大,我的java功底不太好,Android开发也刚刚开始接触,所以很多低级问题还请见谅。
我做一个程序 是这样的ViewPager控制了4个页面,然后每一个页面上都有一个WebView,我要实现的时,切换到不同的Pager的时候能够在WebView上显示不同的内容。之前出现一个指针错误,后来检查发现,原来WebView需要实例化出来,现在是错误不爆了,但是页面上没有内容显示,当然权限已经加了,本来考虑将窗体封装成一个独立类,因为java功底问题,想不到怎么做,给出代码,求各位大神指导。
package com.cnebai.tsmobile;import java.util.ArrayList;import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;/**
* @author Coolio
*
*/
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
private static final String ACTIVITY_TAG = "Main";
private ImageView mTabImg,mTab1,mTab2,mTab3,mTab4;
private ViewPager mTabPager;
private int currIndex = 0;// 当前页卡编号
private int one;//单个水平动画位移
private int two;
private int three;
private int zero = 0;// 动画图片偏移量
private WebView wvMylove,wvFinancing,wvInvest,wvMember;
/**
* @See 主窗体
* @param savedInstanceState
*/
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated constructor stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//启动时关闭软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
mTabPager = (ViewPager)findViewById(R.id.tabpager);
mTabPager.setOnPageChangeListener(new MyOnPageChangeListener());
mTab1 = (ImageView) findViewById(R.id.img_love);
mTab2 = (ImageView) findViewById(R.id.img_financing);
mTab3 = (ImageView) findViewById(R.id.img_invest);
mTab4 = (ImageView) findViewById(R.id.img_member);
mTabImg = (ImageView) findViewById(R.id.img_tab_now); wvMylove = (WebView) findViewById(R.id.myloveContent);
wvMylove = new WebView(this);
WebSettings webSettings = wvMylove.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webSettings.setDefaultTextEncodingName("utf-8");
wvMylove.loadUrl("http://wap.baidu.com");
//绑定点击事件
mTab1.setOnClickListener(new OnClickMenuListener(0));
mTab2.setOnClickListener(new OnClickMenuListener(1));
mTab3.setOnClickListener(new OnClickMenuListener(2));
mTab4.setOnClickListener(new OnClickMenuListener(3));
//屏幕尺寸
Display currDisplay = getWindowManager().getDefaultDisplay();//获取屏幕当前分辨率
int displayWidth = currDisplay.getWidth();
int displayHeight = currDisplay.getHeight();
one = displayWidth/4; //设置水平动画平移大小
two = one*2;
three = one*3;
Log.i(MainActivity.ACTIVITY_TAG, "获取的屏幕分辨率为" + one + two + three + "X" + displayHeight);
LayoutInflater mLi = LayoutInflater.from(this);
View view1 = mLi.inflate(R.layout.main_tab_mylove, null);
View view2 = mLi.inflate(R.layout.main_tab_financing, null);
View view3 = mLi.inflate(R.layout.main_tab_invest, null);
View view4 = mLi.inflate(R.layout.main_tab_member, null);
final ArrayList<View> views = new ArrayList<View>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
PagerAdapter mPagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return views.size();
} @Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(views.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
public void finishUpdate(View arg0) {
}
};
mTabPager.setAdapter(mPagerAdapter);
/*
wvFinancing = (WebView) findViewById(R.id.financingContent);
wvInvest = (WebView) findViewById(R.id.investContent);
wvMember = (WebView) findViewById(R.id.memberContent);
*/
}
/**
* @see 菜单OnClick事件的侦听
* @author Coolio
*
*/
public class OnClickMenuListener implements View.OnClickListener {
private int index = 0; public OnClickMenuListener(int i) {
index = i;
}
@Override
public void onClick(View v) {
mTabPager.setCurrentItem(index);
}
}
/* 页卡切换监听(原作者:D.Winter)
*/
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageSelected(int arg0) {
Log.i(MainActivity.ACTIVITY_TAG,"onPageSelected" + Integer.toString(arg0));
Animation animation = null;
switch (arg0) {
case 0:
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_pressed));
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, 0, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 1:
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, one, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, one, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 2:
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, two, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, two, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 3:
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, three, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, three, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
}
else if (currIndex == 2) {
animation = new TranslateAnimation(two, three, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(150);
mTabImg.startAnimation(animation);
} @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
} @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
}
}
ViewPager,WebView
我做一个程序 是这样的ViewPager控制了4个页面,然后每一个页面上都有一个WebView,我要实现的时,切换到不同的Pager的时候能够在WebView上显示不同的内容。之前出现一个指针错误,后来检查发现,原来WebView需要实例化出来,现在是错误不爆了,但是页面上没有内容显示,当然权限已经加了,本来考虑将窗体封装成一个独立类,因为java功底问题,想不到怎么做,给出代码,求各位大神指导。
package com.cnebai.tsmobile;import java.util.ArrayList;import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;/**
* @author Coolio
*
*/
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
private static final String ACTIVITY_TAG = "Main";
private ImageView mTabImg,mTab1,mTab2,mTab3,mTab4;
private ViewPager mTabPager;
private int currIndex = 0;// 当前页卡编号
private int one;//单个水平动画位移
private int two;
private int three;
private int zero = 0;// 动画图片偏移量
private WebView wvMylove,wvFinancing,wvInvest,wvMember;
/**
* @See 主窗体
* @param savedInstanceState
*/
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated constructor stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//启动时关闭软键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
mTabPager = (ViewPager)findViewById(R.id.tabpager);
mTabPager.setOnPageChangeListener(new MyOnPageChangeListener());
mTab1 = (ImageView) findViewById(R.id.img_love);
mTab2 = (ImageView) findViewById(R.id.img_financing);
mTab3 = (ImageView) findViewById(R.id.img_invest);
mTab4 = (ImageView) findViewById(R.id.img_member);
mTabImg = (ImageView) findViewById(R.id.img_tab_now); wvMylove = (WebView) findViewById(R.id.myloveContent);
wvMylove = new WebView(this);
WebSettings webSettings = wvMylove.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webSettings.setDefaultTextEncodingName("utf-8");
wvMylove.loadUrl("http://wap.baidu.com");
//绑定点击事件
mTab1.setOnClickListener(new OnClickMenuListener(0));
mTab2.setOnClickListener(new OnClickMenuListener(1));
mTab3.setOnClickListener(new OnClickMenuListener(2));
mTab4.setOnClickListener(new OnClickMenuListener(3));
//屏幕尺寸
Display currDisplay = getWindowManager().getDefaultDisplay();//获取屏幕当前分辨率
int displayWidth = currDisplay.getWidth();
int displayHeight = currDisplay.getHeight();
one = displayWidth/4; //设置水平动画平移大小
two = one*2;
three = one*3;
Log.i(MainActivity.ACTIVITY_TAG, "获取的屏幕分辨率为" + one + two + three + "X" + displayHeight);
LayoutInflater mLi = LayoutInflater.from(this);
View view1 = mLi.inflate(R.layout.main_tab_mylove, null);
View view2 = mLi.inflate(R.layout.main_tab_financing, null);
View view3 = mLi.inflate(R.layout.main_tab_invest, null);
View view4 = mLi.inflate(R.layout.main_tab_member, null);
final ArrayList<View> views = new ArrayList<View>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
PagerAdapter mPagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return views.size();
} @Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(views.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
public void finishUpdate(View arg0) {
}
};
mTabPager.setAdapter(mPagerAdapter);
/*
wvFinancing = (WebView) findViewById(R.id.financingContent);
wvInvest = (WebView) findViewById(R.id.investContent);
wvMember = (WebView) findViewById(R.id.memberContent);
*/
}
/**
* @see 菜单OnClick事件的侦听
* @author Coolio
*
*/
public class OnClickMenuListener implements View.OnClickListener {
private int index = 0; public OnClickMenuListener(int i) {
index = i;
}
@Override
public void onClick(View v) {
mTabPager.setCurrentItem(index);
}
}
/* 页卡切换监听(原作者:D.Winter)
*/
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageSelected(int arg0) {
Log.i(MainActivity.ACTIVITY_TAG,"onPageSelected" + Integer.toString(arg0));
Animation animation = null;
switch (arg0) {
case 0:
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_pressed));
if (currIndex == 1) {
animation = new TranslateAnimation(one, 0, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, 0, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, 0, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 1:
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, one, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 2) {
animation = new TranslateAnimation(two, one, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, one, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 2:
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, two, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, two, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
}
else if (currIndex == 3) {
animation = new TranslateAnimation(three, two, 0, 0);
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_normal));
}
break;
case 3:
mTab4.setImageDrawable(getResources().getDrawable(R.drawable.tab_member_pressed));
if (currIndex == 0) {
animation = new TranslateAnimation(zero, three, 0, 0);
mTab1.setImageDrawable(getResources().getDrawable(R.drawable.tab_mylove_normal));
} else if (currIndex == 1) {
animation = new TranslateAnimation(one, three, 0, 0);
mTab2.setImageDrawable(getResources().getDrawable(R.drawable.tab_financing_normal));
}
else if (currIndex == 2) {
animation = new TranslateAnimation(two, three, 0, 0);
mTab3.setImageDrawable(getResources().getDrawable(R.drawable.tab_invest_normal));
}
break;
}
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(150);
mTabImg.startAnimation(animation);
} @Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
} @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
}
}
ViewPager,WebView
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货