app展示word、excel、pdf、ppt,sp SharedPreferences的基本用法

​​持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情

目录

activity中加载fragment的控件

在fragment 中调用activity中的控件


activity中加载fragment的控件

fragment.getView().findViewById(id)来获取fragment中的控件。

在fragment 中调用activity中的控件

前提条件是这个fragment是装在这个activity中的,还有一种情况是fragment的嵌套的时候也是  可以的。

首先把activity中的控件声明为public

在fragment中这样调用:

//获取上下文,在这里就是只Activity,

MainActivity mainActivity = (MainActivity) getActivity();
使用Context调用控件;
mainActivity.mIvAction.setVisibility(View.GONE);
复制代码

原理就是: fragment是嵌套在Activity的,activity就是桌子,Fragment就是抽屉,可以用父子继承关系看待;

上面第一句就是在获取上下文,在这里就是只Activity,

第二句就是使用Context调用控件;

根本原因是:所有的控件都是继承Context的

整理一天了,网上嗾使tbs的sdk jar,都不能用;
腾讯的demo也是不行的;下载地址:tbs.imtt.qq.com//release/44…
在这里插入图片描述

在这里插入图片描述
网上有个人是根据腾讯demo写了一个可以用的,但是我的使用还是不行,不过他有截图为证;
简书 说明 ;

[git 项目](https://github.com/ZhongXiaoHong/superFileView)
复制代码

但是我使用还是不行的;

我的办法:
现附上两个在线预览office文档的地址:(浏览器都需要chrome的内核)

1 google:docs.google.com/viewer?url=…

2 微软:view.officeapps.live.com/op/view.asp…

demo:
先上图片
docdoc文请添加图片描述
ppt的请添加图片描述


```xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/wv"/>

</androidx.constraintlayout.widget.ConstraintLayout>
复制代码

```xml

```xml

```java
package com.example.myweb;

import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private WebView urlWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        urlWebView.setVisibility(View.VISIBLE);

        urlWebView.setWebViewClient(new AppWebViewClients());

        urlWebView.getSettings().setJavaScriptEnabled(true);

        urlWebView.getSettings().setUseWideViewPort(true);


        urlWebView.loadUrl
                ("http://view.officeapps.live.com/op/view.aspx?src=https://tidaizhe.cn/entLicense/123.ppt");

    }

    public class AppWebViewClients extends WebViewClient {

        @Override

        public boolean shouldOverrideUrlLoading(WebView view, String url) {

// TODO Auto-generated method stub

            view.loadUrl(url);

            return true;

        }

        @Override

        public void onPageFinished(WebView view, String url) {

// TODO Auto-generated method stub

            super.onPageFinished(view, url);

        }

    }
    private void initView() {
        urlWebView = (WebView) findViewById(R.id.wv);
    }
}
复制代码
复制代码

NET::ERR_CACHE_MISS

在manifest 的配置文件中添加

这样就好了

ERR_CLEARTEXT_NOT_PERMITTED

android:usesCleartextTraffic=“true”

在这里插入图片描述

storage/emulated/0.到底在哪儿

在这里插入图片描述

sp清空:

        SharedPreferences pref = FormalExamActivity.this.getSharedPreferences("face", Context.MODE_PRIVATE);
        if (pref != null) {
            SharedPreferences.Editor editor = pref.edit();
            editor.clear();
            editor.commit();
        }
复制代码

获取SharedPreferences的两种方式:

1 调用Context对象的getSharedPreferences()方法
2 调用Activity对象的getPreferences()方法
两种方式的区别:
调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

SharedPreferences的四种操作模式:
Context.MODE_PRIVATE
Context.MODE_APPEND
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.
将数据保存至SharedPreferences:

  SharedPreferences preferences=getSharedPreferences("face",Context.MODE_PRIVATE);
                        SharedPreferences.Editor editor=preferences.edit();
                        String picName=picTag+"";
                        editor.putString("picName", picName);
                        editor.commit();
复制代码

从SharedPreferences获取数据:

SharedPreferences preferences = getSharedPreferences("face", Context.MODE_PRIVATE);
String picName = preferences.getString("picName", "110");
复制代码

猜你喜欢

转载自juejin.im/post/7106320700293513253
今日推荐