Android fragments 视图寻呼机在工作线程中运行时未在片段中工作

Android fragments 视图寻呼机在工作线程中运行时未在片段中工作,android-fragments,android-viewpager,Android Fragments,Android Viewpager,在Fragment中,我尝试使用工作线程在视图寻呼机中加载数据。相同的代码在活动中工作,但在片段中出现异常。在例外情况下,它是说,在“doInBackground”是造成一些问题。但在“doInBackground”中,我只是将数据分配给某个变量 HTML5Test.java ============== package com.example.asynctaskfra; import java.lang.ref.WeakReference; import java.text.Simpl

在Fragment中,我尝试使用工作线程在视图寻呼机中加载数据。相同的代码在活动中工作,但在片段中出现异常。在例外情况下,它是说,在“doInBackground”是造成一些问题。但在“doInBackground”中,我只是将数据分配给某个变量

HTML5Test.java
==============

package com.example.asynctaskfra;



import java.lang.ref.WeakReference;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import android.app.ProgressDialog;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
public class HTML5Test extends Fragment {




    String[] displayDatainHTML5 = { "tstessssssssssssssssssssssssssssssssssssssssssfeugiat, vitae consectetur","Checl something Nulla dolor ligula, 123456677777777","13232","312321313","e2324234324"};
    private ImageButton ViewPageReportLeft;
    private ImageButton ViewPageReportRight;
    private ImageButton showCalendar;
    private ImageButton sharing;
    private TextView showDate;
    private Handler m_handler;
    int count =5;
    String Format = "MMMM dd, yyyy";
    android.support.v4.view.ViewPager viewPager;
    View convertView;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        convertView = inflater.inflate(R.layout.html5test, container, false);

        viewPager = (android.support.v4.view.ViewPager)convertView.findViewById(R.id.Content);
        ViewPageReportLeft = (ImageButton) convertView.findViewById(R.id.LeftArrow);
        ViewPageReportRight = (ImageButton) convertView.findViewById(R.id.RightArrow);
        showCalendar = (ImageButton) convertView.findViewById(R.id.Calendar);
        sharing = (ImageButton) convertView.findViewById(R.id.Sharing);


        initControls();


        return convertView; 

    }



    private void initControls() {




        new BackGroundTask(viewPager).execute();    
    }


    ProgressDialog waitdialog;
    public  class BackGroundTask extends AsyncTask<String, Void ,Void>{


        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
              super.onPreExecute();
              //waitdialog=ProgressDialog.show(HTML5Content.this, "", "please wait data is loading");
              Log.d("Post Execute", "Is excuted");


        }
            @Override
            protected Void doInBackground(String... params) {
                // TODO Auto-generated method stub

                count=displayDatainHTML5.length;
                return null;
            }
            @Override
                protected void onPostExecute(Void result) {
                    // TODO Auto-generated method stub

                    super.onPostExecute(result);
                            viewPager.setAdapter(new TextPagerAdapter(getActivity(),displayDatainHTML5,Color.GREEN));
                            m_handler = new Handler();
                            startRepeatingTask();
                            //Pageindicator(0);
                            waitdialog.dismiss();


                }
       }


    private void adsRotation() {

        int cur=viewPager.getCurrentItem();
        if(cur==count-1){
            cur=0;
            viewPager.setCurrentItem(cur);
        }
        else{
            cur=cur+1;
            viewPager.setCurrentItem(cur);
        }

    }

    Runnable m_statusChecker = new Runnable() {
        public void run() {
            adsRotation(); // this function can change value of m_interval.
            Log.d("Check" , "Whether it is running");
            m_handler.postDelayed(m_statusChecker, 6000);
        }
    };

    void startRepeatingTask() {
        m_statusChecker.run();
    }

    void stopRepeatingTask() {
        m_handler.removeCallbacks(m_statusChecker);
    }


}


html5test.xml
=============

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout

    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >



    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.15"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <ImageView
            android:id="@+id/TopImage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.43"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <TextView
            android:id="@+id/Date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="0dp"
            android:src="@drawable/ic_launcher"
            android:text="ShowDate" />

        <ImageButton
            android:id="@+id/Sharing"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="110dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/ic_launcher" />

        <ImageButton
            android:id="@+id/Calendar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <ImageView
            android:id="@+id/Blackline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/blackline" />

    </LinearLayout>



    <LinearLayout
        android:id="@+id/OutputLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <android.support.v4.view.ViewPager
            android:id="@+id/Content"
            android:layout_width="wrap_content"
            android:layout_height="200dp"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="0dp"
            android:src="@drawable/ic_launcher"
             />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <ImageView
            android:id="@+id/Blackline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/blacklinethin" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:scaleType="fitXY" >

        <ImageButton
            android:id="@+id/LeftArrow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/ic_launcher" />

        <TextView
            android:id="@+id/Read"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="0dp"
            android:src="@drawable/ic_launcher"
            android:text="Read More Featured Stories" />

        <ImageButton
            android:id="@+id/RightArrow"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="0dp"
            android:layout_weight="0.44"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    </LinearLayout>

</FrameLayout>

TextPagerAdapter.java
=====================

package com.example.asynctaskfra;
import java.util.ArrayList;
import android.content.Context;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;


public class TextPagerAdapter extends PagerAdapter {

    private LayoutInflater inflater;
    Context context;
    String [] displayData;
    int passColor;

    public TextPagerAdapter(Context context,String [] displayData,int passColor) {
        this.displayData=displayData;
        inflater = LayoutInflater.from(context);    
        this.context=context;
        this.passColor = passColor;

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((View) object);
    }

    @Override
    public void finishUpdate(View container) {
    }

    @Override
    public int getCount() {

        return displayData.length;
    }

    @Override
    public Object instantiateItem(ViewGroup view, final int position) {
        View imageLayout = inflater.inflate(R.layout.list_single, view, false);
        TextView title = (TextView) imageLayout.findViewById(R.id.displaytxt);
        title.setText(displayData[position]);
        title.setTextColor(passColor);
        ((ViewPager) view).addView(imageLayout, 0);
        return imageLayout;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view.equals(object);
    }

    @Override
    public void restoreState(Parcelable state, ClassLoader loader) {
    }

    @Override
    public Parcelable saveState() {
        return null;
    }

    @Override
    public void startUpdate(View container) {
    }
}

list_single.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" 
    >

        <TextView
            android:id="@+id/displaytxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="30dp"
            android:gravity="center"
            android:textColor="#ffffff" />

</RelativeLayout>
HTML5Test.java
==============
包com.example.asynctaskfra;
导入java.lang.ref.WeakReference;
导入java.text.simpleDataFormat;
导入java.util.Date;
导入java.util.Locale;
导入android.app.ProgressDialog;
导入android.graphics.Color;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.os.Handler;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.support.v4.view.ViewPager;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.widget.ImageButton;
导入android.widget.TextView;
公共类HTML5Test扩展了片段{
字符串[]displayDatainHTML5={“tstesssssssssfuegiat,vitae concertetur”,“Checl某物nulladolor ligula,12345667777777”,“13232”,“312321313”,“E232434324”};
private ImageButton ViewPageReportLeft;
private ImageButton ViewPageReportRight;
私人图像按钮显示日历;
私有图像按钮共享;
私有文本视图显示日期;
私有处理器m_处理器;
整数计数=5;
字符串格式=“mm-dd,yyyy”;
android.support.v4.view.ViewPager-ViewPager;
视图转换视图;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//TODO自动生成的方法存根
convertView=充气机。充气(R.layout.HTML5测试,容器,错误);
viewPager=(android.support.v4.view.viewPager)convertView.findViewById(R.id.Content);
ViewPageReportLeft=(ImageButton)convertView.findViewById(R.id.LeftArrow);
ViewPageReportRight=(ImageButton)convertView.findViewById(R.id.RightArrow);
showCalendar=(ImageButton)convertView.findViewById(R.id.Calendar);
共享=(ImageButton)convertView.findViewById(R.id.sharing);
initControls();
返回视图;
}
私有控件(){
新建背景任务(viewPager).execute();
}
进展对话;
公共类BackGroundTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
//TODO自动生成的方法存根
super.onPreExecute();
//waitdialog=ProgressDialog.show(HTML5Content.this,“,”请等待数据加载“);
Log.d(“后执行”、“已执行”);
}
@凌驾
受保护的Void doInBackground(字符串…参数){
//TODO自动生成的方法存根
计数=displayDatainHTML5.length;
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
super.onPostExecute(结果);
setAdapter(新的TextPagerAdapter(getActivity(),displayDatainHTML5,Color.GREEN));
m_handler=新处理程序();
startRepeatingTask();
//页面指示器(0);
waitdialog.discouse();
}
}
私有空间{
int cur=viewPager.getCurrentItem();
如果(cur==count-1){
cur=0;
viewPager.setCurrentItem(当前);
}
否则{
cur=cur+1;
viewPager.setCurrentItem(当前);
}
}
Runnable m_statusChecker=new Runnable(){
公开募捐{
adsRotation();//此函数可以更改m_间隔的值。
日志d(“检查”、“是否正在运行”);
m_handler.postDelayed(m_statusChecker,6000);
}
};
void startRepeatingTask(){
m_statusChecker.run();
}
void stopRepeatingTask(){
m_handler.removeCallbacks(m_statusChecker);
}
}
html5test.xml
=============
TextPagerAdapter.java
=====================
包com.example.asynctaskfra;
导入java.util.ArrayList;
导入android.content.Context;
导入android.os.Parcelable;
导入android.support.v4.view.PagerAdapter;
导入android.support.v4.view.ViewPager;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.TextView;
公共类TextPagerAdapter扩展了PagerAdapter{
私人充气机;
语境;
字符串[]显示数据;
int passColor;
public TextPagerAdapter(上下文上下文,字符串[]显示数据,int passColor){
this.displayData=displayData;
充气器=充气器。从(上下文);
this.context=context;
this.passColor=passColor;
}
@凌驾
公共项(视图组容器、int位置、对象){
((ViewPager)容器)。移除视图((视图)对象);
}
@凌驾
公共void finishUpdate(视图容器){
}
@凌驾
public int getCount(){
返回displayData.length;
}
@凌驾
公共对象实例化项(视图组视图,最终int位置){
查看图像布局=充气机。充气(R.layout.list_single,View,false);
TextView title=(TextView)imageLayout.findviewbyd(R.id.displaytxt);
title.setText(显示数据[位置]);
title.setTextColor(passColor);
((ViewPager)视图)。添加视图(imageL