Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用viewpager更新片段以播放视频_Android_Android Viewpager_Fragment - Fatal编程技术网

Android 使用viewpager更新片段以播放视频

Android 使用viewpager更新片段以播放视频,android,android-viewpager,fragment,Android,Android Viewpager,Fragment,我有一个RSS应用程序,我正在使用viewpager从一篇文章转到另一篇文章。 我的问题是,如果我打开列表中的一篇文章,我总是可以播放其中的视频。如果我在文章之间移动(使用滑动),我将无法播放视频 所以,我想我必须在刷卡时刷新片段?这就是解决方案吗 这是我的片段适配器: public class DescAdapter extends FragmentStatePagerAdapter { public DescAdapter(FragmentManager fm) {

我有一个RSS应用程序,我正在使用viewpager从一篇文章转到另一篇文章。 我的问题是,如果我打开列表中的一篇文章,我总是可以播放其中的视频。如果我在文章之间移动(使用滑动),我将无法播放视频

所以,我想我必须在刷卡时刷新片段?这就是解决方案吗

这是我的片段适配器:

public class DescAdapter extends FragmentStatePagerAdapter {
    public DescAdapter(FragmentManager fm) {
        super(fm);

    }

    @Override
    public int getCount() {
        entry = new HotOrNot_all(DetailActivity.this);
        entry.open();
        long count = entry.fetchPlacesCount();
        entry.close();
        return (int) count;
    }

    @Override
    public Fragment getItem(int position) {

        DetailFragment frag = new DetailFragment();

        Bundle bundle = new Bundle();

        bundle.putInt("pos", position);

        frag.setArguments(bundle);


        return frag;

    }

}
DetailActivity.java

public class DetailActivity extends SherlockFragmentActivity {

    int pos;
    private DescAdapter adapter;
    private ViewPager pager;
    private ShareActionProvider mShareActionProvider;
    private HotOrNot_all entry;
    String TITLE;
    String CAT;
    String DESC;
    String ROWID;
    String IMAGE;
    String DATE;
    String LINK;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.detail);

        Log.i(this.getComponentName().toString(), "Started");
        pos = getIntent().getExtras().getInt("pos");


        getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


        // Initialize the views
        adapter = new DescAdapter(getSupportFragmentManager());
        adapter.notifyDataSetChanged();
        pager = (ViewPager) findViewById(R.id.pager);

        // Set Adapter to pager:
        pager.setAdapter(adapter);
        pager.setCurrentItem(pos);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case android.R.id.home:
            this.
            finish();

            overridePendingTransition(R.anim.animation_slide_in_left,
                    R.anim.animation_slide_out_right);

            return true;
        default:
            return super.onOptionsItemSelected(item);

        }
    }



    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        finish();
        overridePendingTransition(R.anim.animation_slide_in_left,
                R.anim.animation_slide_out_right);

        return super.onKeyDown(keyCode, event);
    }

    public class DescAdapter extends FragmentStatePagerAdapter {
        public DescAdapter(FragmentManager fm) {
            super(fm);

        }

        @Override
        public int getCount() {
            entry = new HotOrNot_all(DetailActivity.this);
            entry.open();
            long count = entry.fetchPlacesCount();
            entry.close();
            return (int) count;
        }

        @Override
        public Fragment getItem(int position) {

            DetailFragment frag = new DetailFragment();

            Bundle bundle = new Bundle();
            // bundle.putSerializable("list",TITLE_LIST);

            bundle.putInt("pos", position);

            frag.setArguments(bundle);


            return frag;

        }

    }

}
DetailFragment.java

public class DetailFragment extends SherlockFragment {
    private int fPos;
    private ShareActionProvider mShareActionProvider;
    String TITLE;
    String CAT;
    String DESC;
    String ROWID;
    String IMAGE;
    String DATE;
    String LINK;
    private HotOrNot_all entry;
    static Typeface roboto_bold;
    static Typeface roboto_regular;

    @SuppressWarnings("unchecked")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Bundle bundle = getActivity().getIntent().getExtras();

        roboto_bold = Typeface.createFromAsset(getActivity().getAssets(),
                "fonts/Roboto-Medium.ttf");

        roboto_regular = Typeface.createFromAsset(getActivity().getAssets(),
                "fonts/Roboto-Light.ttf");
        Log.i(this.getActivity().toString(), "Started");
        fPos = getArguments().getInt("pos");

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.detail_fragment, container,
                false);
        setHasOptionsMenu(true);

        entry = new HotOrNot_all(getActivity());
        entry.open();
        Cursor c = entry.getAllData();

        if (c.moveToPosition(fPos)) {

            TITLE = c.getString(c.getColumnIndexOrThrow(DBHelper.TITLE));
            CAT = c.getString(c.getColumnIndexOrThrow(DBHelper.CATEGORY));
            DESC = c.getString(c.getColumnIndexOrThrow(DBHelper.DESCRIPTION));
            ROWID = c.getString(c.getColumnIndexOrThrow(DBHelper.ROWID));
            IMAGE = c.getString(c.getColumnIndexOrThrow(DBHelper.IMAGE));
            DATE = c.getString(c.getColumnIndexOrThrow(DBHelper.DATE));
            LINK = c.getString(c.getColumnIndexOrThrow(DBHelper.LINK));

        }

        c.close();
        entry.close();
        // Initializr views
        final TextView title = (TextView) view.findViewById(R.id.title);
        title.setTypeface(roboto_bold);
        final TextView date = (TextView) view.findViewById(R.id.date);
        date.setTypeface(roboto_regular);

        final TextView categg = (TextView) view.findViewById(R.id.categg);
        categg.setTypeface(roboto_regular);

        final WebView desc = (WebView) view.findViewById(R.id.desc);

        desc.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {
                // super.onPageFinished(view, url);
                desc.loadUrl("javascript:(function() { "
                        + "document.getElementsByTagName('img')[0].style.display = 'none'; "
                        + "})()");
            }
        });


        // Enable the vertical fading edge (by default it is disabled)
        ScrollView sv = (ScrollView) view.findViewById(R.id.sv);
        sv.setVerticalFadingEdgeEnabled(true);

        // Set webview properties
        WebSettings ws = desc.getSettings();

        ws.setSupportZoom(true);
        // ws.setDisplayZoomControls(true);
        ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        ws.setLightTouchEnabled(false);
        ws.setPluginState(PluginState.ON);
        ws.setJavaScriptEnabled(true);
        ws.setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36");

        // ws.setLoadsImagesAutomatically(false);
        // desc.requestFocus(View.FOCUS_DOWN);

        desc.loadDataWithBaseURL("", DESC,
                "text/html", "UTF-8", null);

        final WebView web = (WebView) view.findViewById(R.id.my_image);
        web.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });

        // read string from reader
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
        web.getSettings().setLightTouchEnabled(false);
        web.getSettings().setPluginState(PluginState.ON);

        web.getSettings()
                .setUserAgentString(
                        "Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");

        web.setScrollbarFadingEnabled(true);
        web.loadDataWithBaseURL(IMAGE,
                "<img src=\" \" width=\"100%\" border=\"2\"/>", "text/html",
                "utf-8", null);

        // ----------------------------------------------------###############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

        // Set the views
        title.setText(TITLE);


        final Button linkBtn = (Button) view.findViewById(R.id.linkBtn);
        linkBtn.setBackgroundResource(R.color.white);
        linkBtn.setTypeface(roboto_regular);
        linkBtn.setOnClickListener(new Button.OnClickListener() {

            public void onClick(View v) {

                web.setVisibility(View.GONE);
                title.setVisibility(View.GONE);
                date.setVisibility(View.GONE);
                categg.setVisibility(View.GONE);
                linkBtn.setVisibility(View.GONE);

                desc.getSettings().setJavaScriptEnabled(true);
                final ProgressDialog progressDialog = new ProgressDialog(view
                        .getContext());
                progressDialog.setMessage("Loading  website ...");

                progressDialog.setCancelable(true);
                progressDialog.show();
                desc.loadUrl(LINK);

                desc.setWebViewClient(new WebViewClient() {
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view,
                            String url) {
                        view.getSettings().setJavaScriptEnabled(true);
                        view.loadUrl(url);
                        view.scrollTo(0, 0);

                        return true;

                    }

                    @Override
                    public void onPageFinished(WebView view, String url) {
                        super.onPageFinished(view, url);
                        progressDialog.dismiss();
                    }
                });
                // linkBtn.setVisibility(View.GONE);

            }
        });

        return view;

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.favorite_option2:
            // app icon in action bar clicked; finish activity to go home
            // grafei stin vasi dedomenwn
            // ------------------------

            HotOrNot_favorite entry = new HotOrNot_favorite(this.getActivity());
            entry.open();

            if (entry.Exists(LINK) == true) {
                item.setIcon(R.drawable.favorite_empty_gr);

                entry.deleteItemByLink(LINK);

            } else {
                item.setIcon(R.drawable.favorite_full_gr);

                entry.createEntryNea(TITLE, DESC, LINK, DATE, IMAGE, CAT);

                // entry.update(msg.getTitle(),msg.getagonistiki(),msg.getskor(),msg.getgipedo(),msg.getDate());


                // ----------------------------------------
            }

            entry.close();

            return true;

        default:
            return super.onOptionsItemSelected(item);

        }
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.activity_desc, menu);
        MenuItem switchButton = menu.findItem(R.id.favorite_option2);
        HotOrNot_favorite entry = new HotOrNot_favorite(this.getActivity());
        entry.open();

        if (entry.Exists(LINK) == true) {

            switchButton.setIcon(R.drawable.favorite_full_gr);

        }

        entry.close();

        // Locate MenuItem with ShareActionProvider
        MenuItem shareItem = menu.findItem(R.id.share_option);

        // Fetch and store ShareActionProvider
        mShareActionProvider = (ShareActionProvider) shareItem
                .getActionProvider();

        Intent shareIntent = new Intent(Intent.ACTION_SEND);
        shareIntent.setType("text/plain"); // eixe text/plan
        shareIntent.putExtra(Intent.EXTRA_SUBJECT, getText(R.string.app_name)
                + " Android App");

        if ((LINK != null) && (TITLE != null)) {

            String shareBody = Html.fromHtml(TITLE + "<br><br>")
                    + LINK
                    + Html.fromHtml("<br><br>Send from "
                            + getText(R.string.app_name) + " Android App");
            shareIntent.putExtra(Intent.EXTRA_TEXT, shareBody);

            // Set the share intent
            mShareActionProvider.setShareIntent(shareIntent);
        }

        else {

            String shareBody = LINK;
            shareIntent.putExtra(Intent.EXTRA_TEXT, shareBody);

            // Set the share intent
            mShareActionProvider.setShareIntent(shareIntent);

        }

        super.onCreateOptionsMenu(menu, inflater);
    }


}
public类DetailFragment扩展了SherlockFragment{
私人int FPO;
私有ShareActionProvider mShareActionProvider;
字符串标题;
弦猫;
字符串描述;
字符串ROWID;
字符串图像;
字符串日期;
串链;
私人旅馆不允许进入;
静态字体roboto_粗体;
静态字体roboto_regular;
@抑制警告(“未选中”)
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//Bundle Bundle=getActivity().getIntent().getExtras();
roboto_bold=Typeface.createFromAsset(getActivity().getAssets(),
“fonts/Roboto Medium.ttf”);
roboto_regular=Typeface.createFromAsset(getActivity().getAssets(),
“字体/Roboto-Light.ttf”);
Log.i(this.getActivity().toString(),“Started”);
fPos=getArguments().getInt(“pos”);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
最终视图=充气机。充气(右布局。详图\u碎片,容器,
假);
设置选项菜单(真);
entry=newhotornot_all(getActivity());
entry.open();
游标c=entry.getAllData();
如果(c.移动位置(fPos)){
TITLE=c.getString(c.getColumnIndexOrThrow(DBHelper.TITLE));
CAT=c.getString(c.getColumnIndexOrThrow(DBHelper.CATEGORY));
DESC=c.getString(c.getColumnIndexOrThrow(DBHelper.DESCRIPTION));
ROWID=c.getString(c.getColumnIndexOrThrow(DBHelper.ROWID));
IMAGE=c.getString(c.getColumnIndexOrThrow(DBHelper.IMAGE));
DATE=c.getString(c.getColumnIndexOrThrow(DBHelper.DATE));
LINK=c.getString(c.getColumnIndexOrThrow(DBHelper.LINK));
}
c、 close();
entry.close();
//初始化视图
final TextView title=(TextView)view.findViewById(R.id.title);
标题.设置字体(roboto_粗体);
最终TextView日期=(TextView)view.findViewById(R.id.date);
日期。设置字体(roboto_常规);
final TextView categg=(TextView)view.findViewById(R.id.categg);
类别设置字体(roboto_常规);
final WebView desc=(WebView)view.findviewbyd(R.id.desc);
desc.setWebViewClient(新WebViewClient(){
@凌驾
公共void onPageFinished(WebView视图,字符串url){
//super.onPageFinished(视图、url);
desc.loadUrl(“javascript:(函数(){”
+“document.getElementsByTagName('img')[0]。style.display='none'
+ "})()");
}
});
//启用垂直淡入边缘(默认情况下禁用)
ScrollView sv=(ScrollView)view.findViewById(R.id.sv);
sv.setVerticalFadingEdgeEnabled(真);
//设置webview属性
WebSettings ws=desc.getSettings();
ws.setSupportZoom(真);
//ws.setDisplayZoomControl(true);
ws.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_列);
ws.setLightTouchEnabled(false);
ws.setPluginState(PluginState.ON);
ws.setJavaScriptEnabled(true);
ws.setUserAgentString(“Mozilla/5.0(X11;Linux x86_64)AppleWebKit/534.36(KHTML,类似Gecko)Chrome/13.0.766.0 Safari/534.36”);
//ws.setLoadsImagesAutomatically(false);
//描述请求焦点(视图焦点向下);
desc.loadDataWithBaseURL(“),desc,
“文本/html”、“UTF-8”、空);
final WebView web=(WebView)view.findviewbyd(R.id.my_image);
setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
返回true;
}
});
//从读卡器读取字符串
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_列);
web.getSettings().setLightTouchEnabled(false);
web.getSettings().setPluginState(PluginState.ON);
web.getSettings()
.setUserAgentString(
“Mozilla/5.0(Linux;U;Android 2.0;en-us;Droid Build/ESD20)AppleWebKit/530.17(KHTML,类似Gecko)版本/4.0 Mobile Safari/530.17”);
web.setScrollBarFadinEnabled(真);
loadDataWithBaseURL(图像,
“”和“text/html”,
“utf-8”,空);
// ----------------------------------------------------###############################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//设置视图
title.setText(title);
final Button linkBtn=(Button)view.findviewbyd(R.id.linkBtn);
linkBtn.setBackgroundResource(R.color.white);
linkBtn.setTypeface(roboto_常规);
linkBtn.setOnClickListener(新建按钮.OnClickListener(){
公共void onClick(视图v){
setVisibility(View.GONE);
title.setVisibility(View.GONE);
date.setVisibility(View.GONE);
类别设置可见性(视图已消失);
linkBtn.setVisibility(View.GONE);
desc.getSettings().setJavaScriptEnabled(true);
final ProgressDialog ProgressDialog=新建ProgressDialog(视图
.getContext());
progressDialog.setMessage(“加载网站…”);
progressDialog.setCancelable(真);