健康栏目的实现

预期效果



实际效果:程序出现闪退或停止运行,正在尝试排错。。。

Error位置


HealthActivity.java
package com.walkersimulate;

import java.util.ArrayList;
import java.util.List;

import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class HealthActivity extends Activity
{
	private int currIndex;// 当前页卡编号 
	private TextView tvCursor;
	private TextView tvHealthNews; 
	private TextView tvIllnessDefense; 
	private ViewPager vpHealth;
	private ImageView ivHealthBack;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_health); 
		initViews();
		initCursor(); 
		initViewPager(); 
		setListeners(); 
	}
	private void initViews(){ 
		ivHealthBack=(ImageView)findViewById(R.id.iv_HealthBack); 
		tvCursor=(TextView)findViewById(R.id.cursor); 
		tvHealthNews=(TextView)findViewById(R.id.tv_healthnews);
		//tvIllnessDefense=(TextView)findViewById(R.id.tv_IllDefense); 
		vpHealth= (ViewPager)findViewById(R.id.viewpager);
	}
	private void initCursor(){
	Display display= getWindow().getWindowManager().getDefaultDisplay(); 
	DisplayMetrics metrics= new DisplayMetrics(); 
	display.getMetrics(metrics); 
	// 取得手机屏幕宽度的一半
	int tabLineLength=metrics.widthPixels/2;
	// 设置游标的宽度为屏幕宽度的一半 
	LayoutParams lp=(LayoutParams) tvCursor.getLayoutParams(); 
	lp.width=tabLineLength;
    tvCursor.setLayoutParams(lp);
	}
	private void initViewPager(){ 
		vpHealth= (ViewPager)findViewById(R.id.viewpager); 
		List<View>views =new ArrayList<View>(); 
		views.add(new HealthWebView(this) .getView("http://cms.hxky.cn/wap/jkxz/")); 
		views.add(new HealthWebView(this) .getView("http://cms.hxky.cn/wap/jbfz/")); 
		vpHealth.setAdapter(new HealthViewPagerAdapter(views)); 
		// 给 ViewPager 设置适配器 
		vpHealth.setCurrentItem(0);
		// 设置当前显示标签页为第一页 
		}
	private void setListeners(){ 
		// 返回按钮 
		ivHealthBack.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View arg0)
			{ finish(); }
	});
	// 点击健康须知
tvHealthNews.setOnClickListener(new OnClickListener(){
	@Override
	public void onClick(View view){ 
		vpHealth.setCurrentItem(0); 
		}
	}); 
// 点击疾病防治 
tvIllnessDefense.setOnClickListener(new OnClickListener(){
	
	@Override public void onClick(View view)
	{ vpHealth.setCurrentItem(1); }
	});
vpHealth.setOnPageChangeListener(new OnPageChangeListener(){
	
	@Override 
	public void onPageSelected(int position){ 
		currIndex=position; 
		}
	@Override 
	public void onPageScrolled(int position,float percent,int ag2){ 
		LinearLayout.LayoutParams ll = (android.widget.LinearLayout.LayoutParams)tvCursor .getLayoutParams();
		
	if(currIndex== position){ 
		ll.leftMargin=(int)(currIndex*tvCursor.getWidth()+percent *tvCursor.getWidth()); 
		}else if(currIndex>position){ 
		ll.leftMargin=(int)(currIndex*tvCursor.getWidth()-(1-percent) *tvCursor.getWidth()); } tvCursor.setLayoutParams(ll);
	}
	@Override public void onPageScrollStateChanged(int position){
	}
	});
	}
	

}



HealthViewPagerAdapter.java
package com.walkersimulate;

import java.util.List;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;

public class HealthViewPagerAdapter extends PagerAdapter
{
	private List<View>viewList;
	public HealthViewPagerAdapter(List<View>viewList){
		this.viewList=viewList;
	}
	@Override
public int getCount(){
		return viewList.size();
		} 
	@Override 
	public boolean isViewFromObject(View view,Object object){ 
		return view==object;
		} 
	@Override 
	public Object instantiateItem(ViewGroup container,int position){
		container.addView(viewList.get(position)); 
		return viewList.get(position);
		} 
	@Override
	public void destroyItem(ViewGroup container,int position,Object object){ 
		container.removeView(viewList.get(position)); 
	}
}

HealthWebView.java
package com.walkersimulate;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class HealthWebView{ 
	private Context context;

public HealthWebView(Context context){ 
	this.context= context;
	}

public View getView(String url){
	View view =LayoutInflater.from(context).inflate(R.layout.pagerofhealth,null); 
	WebView webView=(WebView)view.findViewById(R.id.wvHealth);
	webView.loadUrl(url);
	webView.getSettings().setJavaScriptEnabled(true); 
	//禁止系统浏览器打开页面 
	webView.setWebViewClient(new WebViewClient(){
		@Override 
		public boolean shouldOverrideUrlLoading(WebView view,String url){ 
			view.loadUrl(url);
			return true; 
			} 
		}); 
	return view;
	}
}

activity_health.xml
<?xml version="1.0" encoding="utf-8"?>
            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".HealthActivity">
     <include  layout="@layout/health_layout_titlebar"/> 
     <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content">
          <!-- 健康新知 --> 
          <TextView 
              android:id="@+id/tv_healthnews"
               android:layout_width="wrap_content" 
               android:layout_height="wrap_content" 
               android:layout_gravity="center" 
               android:layout_weight="1" 
               android:gravity="center" 
               android:padding="6dp" 
               android:text="@string/healthnews" 
               android:textSize="18sp"/>
           <!-- 疾病防治 --> 
           <TextView 
               android:id="@+id/tv_healthill"
               android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:layout_gravity="center" 
                android:layout_weight="1" 
                android:gravity="center" 
                android:padding="6dp" 
                android:text="@string/illdefense" 
                android:textSize="18sp"/> 
                </LinearLayout> 
                <TextView
                     android:id="@+id/cursor" 
                     android:layout_width="125dp" 
                     android:layout_height="5dp"
                     android:layout_marginLeft="20dp" 
                     android:background="#990033"/> 
                    
                <android.support.v4.view.ViewPager 
                         android:id="@+id/viewpager"
                          android:layout_width="match_parent" 
                          android:layout_height="match_parent"/>
                      
  </LinearLayout> 

health_layout_titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
      android:layout_height="wrap_content" 
      android:background="@drawable/titlebar_bg"> 
      <ImageView 
          android:id="@+id/iv_HealthBack" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center" 
          android:gravity="center" 
          android:onClick=""
          android:paddingLeft="6dp" 
          android:src="@drawable/icons_health_back"/>
       <TextView android:id="@+id/title"
            android:layout_width="0dp" 
            android:layout_height="wrap_content"
             android:layout_gravity="center" 
             android:layout_weight="1" 
             android:gravity="center" 
             android:text="健康" 
             android:textColor="#ffffff" 
             android:textSize="15sp"/>

</LinearLayout>

pagerofhealth.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<WebView
    android:id="@+id/wvHealth"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    />
</RelativeLayout>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值