@author:065
实验四:intent实验报告目录Android开发课程实验报告实验目的具体实验分析内容一:获取URL地址并启动隐式intent的调用内容二:编写一个自定义WebView供用户选择实验总结实验目的
初学移动应用公开发中的AndroID开发,实验四的主要内容为intent的使用,通过这一次实验,掌握基本的intent使用方法。
具体实验分析实验第一步:阅读官方文档:intent
实验解析:本次实验共分为两个部分。第一个部分是完成一个获取URL地址并启动隐式intent的调用的内容,另一个部分就是自己编写一个自定义WebVIEw,然后选择用这个自定义的WebVIEw来加载网页。
简单来说这部分的内容就是访问用户输入在EditVIEw上的网址(采用隐式intent调用)
这部分还是比较简单的,上逻辑代码:
btn_2.setonClickListener(new VIEw.OnClickListener(){ public voID onClick(VIEw v){ EditText et = findVIEwByID(R.ID.et_1); String n; n = et.getText().toString(); Intent loaDWeb = new Intent(); loaDWeb.setAction(Intent.ACTION_VIEW); loaDWeb.setData(Uri.parse(n)); startActivity(loaDWeb); } });
输入网址后调用系统自带的浏览器访问:
这一部分的内容,我们首先要自定义一个WebVIEw,然后再运行上一部分我们完成的应用来选择这里写好的自定义WebVIEw打开指定网址。
为了更加方便地进行测试,我直接在上一个应用里增加了一个按钮用来测试自定义WebVIEw的一些属性或者方法是否编写正确,如图:
下面介绍自定义WebVIEw的写法(这里参考了一些网上增加进度条的资料,由于查阅资料很多,所以具体搞不清楚来自哪里):
public class demoWebVIEw extends WebVIEw { public demoWebVIEw(Context context, AttributeSet attrs) { super(context,attrs); // 创建进度条 Progressbar pb = new Progressbar(context,null,androID.R.attr.progressbarStyleHorizontal); // 设置位置参数 pb.setLayoutParams(new VIEwGroup.LayoutParams(VIEwGroup.LayoutParams.MATCH_PARENT,3)); addVIEw(pb); //设置内部加载器 setWebChromeClIEnt(new MyWebChromeClIEnt(context,pb)); setWebVIEwClIEnt(new MyWebVIEwClIEnt()); } public class MyWebChromeClIEnt extends WebChromeClIEnt { private Context context; private Progressbar progressbar; public MyWebChromeClIEnt(Context context, Progressbar progressbar){ this.context = context; this.progressbar = progressbar; } //监听进度的回调 @OverrIDe public voID onProgressChanged(WebVIEw vIEw, int newProgress) { if(newProgress == 100){ progressbar.setVisibility(VIEw.GONE); }else{ if(progressbar.getVisibility() == VIEw.GONE){ progressbar.setVisibility(VIEw.VISIBLE); progressbar.setProgress(newProgress); } } super.onProgressChanged(vIEw, newProgress); } } public class MyWebVIEwClIEnt extends WebVIEwClIEnt { @OverrIDe public boolean shouldOverrIDeUrlLoading(WebVIEw vIEw, WebResourceRequest request) { vIEw.loadUrl(request.getUrl().toString()); return true; } }}
注意: 自定义WebVIEw记得改intent-filter。
<intent-filter> <action androID:name="androID.intent.action.VIEW" /> <category androID:name="androID.intent.category.DEFAulT" /> <data androID:scheme="http" /> </intent-filter>
接着编写主要的逻辑代码:
public class MainActivity extends AppCompatActivity { private demoWebVIEw DW; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); Intent getInfo = getIntent(); Uri uri = getInfo.getData(); URL url = null; try { url = new URL(uri.getScheme(), uri.getHost(), uri.getPath()); } catch (Exception e) { e.printstacktrace(); } DW = findVIEwByID(R.ID.webVIEw); DW.getSettings().setJavaScriptEnabled(true); DW.loadUrl(url.toString()); }}
代码解析如下:
首先我们通过intent从上一个Activity获取需要访问的地址,将它转换成url,再通过编写好的代码访问。
效果图:
实验总结这学期刚开始接触移动应用开发,由浅入深,相信以后的实验会有更多值得写的内容,这一次的实验还是有很多内容值得自己去挖掘细节的知识点,通过查阅网上的资料以及老师上课的PPT,还是可以很容易地掌握这一节的内容。同步更新至CSDN,仅作实验记录之用。加油! 总结
以上是内存溢出为你收集整理的Android开发课程实验报告③ intent的使用全部内容,希望文章能够帮你解决Android开发课程实验报告③ intent的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)