android计算汇率代码,android studio 开发实例 连接网络获取汇率
配置文件 AndroidManifest.xml 如下
Version:1.0StartHTML:000000243
EndHTML:000019067
StartFragment:000007811
EndFragment:000018976
StartSelection:000007815
EndSelection:000018966
SourceURL:https://github.com/lqr41710085/App1/blob/master/app/src/main/AndroidManifest.xml
xmlns:dist="http://schemas.android.com/apk/distribution"
package="com.example.app1">
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
连接网络:
publiccpublicclassMainActivityextendsAppCompatActivityimplementsRunnable{lassMainActivityextendsAppCompatActivityimplementsRunnable{
doubledol,eur,jap,hk;
TextViewedit,text;
privatestaticfinalStringTAG="MainActivity";
SharedPreferencessp;
SharedPreferences.Editoreditor;
Handlerhandler;
doubledol,eur,jap,hk;
TextViewedit,text;
privatestaticfinalStringTAG="MainActivity";
SharedPreferencessp;
SharedPreferences.Editoreditor;
Handlerhandler;
@Override
publicvoidrun() {//获取网络数据必须另建一个线程
Documentdoc=null;
Bundlebd=newBundle();
try{
Stringurl="https://www.usd-cny.com/bankofchina.htm";
doc=Jsoup.connect(url).get();
//Log.i(TAG,"hhhhhdoc:"+doc.title());
Elementstables=doc.getElementsByTag("table");
Elementtable=tables.first();
Elementstds=table.getElementsByTag("td");
Elementsps=doc.getElementsByTag("p");
Elementp=ps.get(0);
bd.putString("time",p.text());
//Log.i(TAG,"hhhh"+p.text());//获取时间装入bundle
for(inti=0;i
Elementtd1=tds.get(i);
Elementtd2=tds.get(i+5);
Stringname=td1.text();
Stringrate=td2.text();
if(name.equals("美元")||name.equals("日元")||name.equals("欧元")||name.equals("港币")){
floatv=100f/Float.parseFloat(rate);
bd.putFloat(name,v);
//Log.i(TAG,name+"hhhhh: "+v+"\n");
}
}
}catch(IOExceptione) {
e.printStackTrace();
}
Messagemsg=handler.obtainMessage(4);
msg.obj=bd;
handler.sendMessage(msg);
//Log.i(TAG,"hhhhsend");
}
privateStringinputStream2String(InputStreaminputStream)throwsIOException{
Stringstr="";
BufferedReaderreader=newBufferedReader(newInputStreamReader(inputStream,"gb2312"));
StringBuffersb=newStringBuffer();
while((str=reader.readLine())!=null){
Log.i(TAG,"in2str:"+str);
sb.append(str).append("\n");
}
returnsb.toString();
}
@Override
protectedvoidonCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Threadt=newThread(this);
t.start();
sp=this.getSharedPreferences("rate",MODE_PRIVATE);
handler=newHandler(){
publicvoidhandleMessage(Messagemsg){
if(msg.what==4){
Bundlebd2=(Bundle)msg.obj;
//判断时间是否与上次写入时间相同,不同则更新,相同则为同一天,不更新
Stringlasttime=sp.getString("time","0000-00-00");
Stringtime=bd2.get("time").toString().substring(12,22);
Log.i(TAG,lasttime+"hhhh"+time);
if(!time.equals(lasttime)){
editor=sp.edit();
editor.putFloat("dol",bd2.getFloat("美元"));
editor.putFloat("eur",bd2.getFloat("欧元"));
editor.putFloat("jap",bd2.getFloat("日元"));
editor.putFloat("hk",bd2.getFloat("港币"));
editor.putString("time",time);
editor.apply();
Log.i(TAG,"hhh已更新"+bd2.toString());
}
else
Log.i(TAG,"同一天,不更新hhhh");
}
super.handleMessage(msg);
}
};
dol=sp.getFloat("dol",0.0f);
eur=sp.getFloat("eur",0.0f);
jap=sp.getFloat("jap",0.0f);
hk=sp.getFloat("hk",0.0f);
/*dol=0.147;
eur=0.125;
jap=15.372;
hk=1.149;
*/
}
//在xml中btn绑定事件,四个按钮可以绑定一个事件,再依次判断
publicvoidbtn(Viewbtn){
edit=findViewById(R.id.editText);
text=findViewById(R.id.textView3);
if(edit.getText().toString().equals("")){
Toast.makeText(this,"pls enter a number",Toast.LENGTH_SHORT).show();
}
elseif(btn.getId()==R.id.button){
doublen=Double.parseDouble(edit.getText().toString());
n=n*dol;
Strings="after transform"+String.format("%.4f",n).toString()+"美元";
text.setText(s);
}
elseif(btn.getId()==R.id.button2){
doublen2=Double.parseDouble(edit.getText().toString());
n2=n2*eur;
Strings2="after transform"+String.format("%.2f",n2).toString()+"欧元";
text.setText(s2);
}
elseif(btn.getId()==R.id.button3){
doublen3=Double.parseDouble(edit.getText().toString());
n3=n3*jap;
Strings3="after transform"+String.format("%.2f",n3).toString()+"日元";
text.setText(s3);
}
elseif(btn.getId()==R.id.button4) {
doublen4=Double.parseDouble(edit.getText().toString());
n4=n4*hk;
Strings4="after transform"+String.format("%.2f",n4).toString()+"港币";
text.setText(s4);
}
}
publicvoidconfig(Viewv){
Intentin=newIntent(this,Main2Activity.class);
/*in.putExtra("dol",dol);
in.putExtra("eur",eur);
in.putExtra("jap",jap);
in.putExtra("hk",hk);
*/
//Log.i(TAG,"config: okhhh");
startActivityForResult(in,1);
}
@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,@NullableIntentdata) {
if(requestCode==1&&resultCode==4){
/*Bundle bdl=data.getExtras();
dol=bdl.getDouble("dol",1.0f);
eur=bdl.getDouble("eur",1.0f);
jap=bdl.getDouble("jap",1.0f);
hk=bdl.getDouble("hk",1.0f);
*/
dol=sp.getFloat("dol",0.0f);
eur=sp.getFloat("eur",0.0f);
jap=sp.getFloat("jap",0.0f);
hk=sp.getFloat("hk",0.0f);
Log.i(TAG,"dol:"+dol);
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem) {
//Handle action bar item clicks here. The action bar will
//automatically handle clicks on the Home/Up button, so long
//as you specify a parent activity in AndroidManifest.xml.
intid=item.getItemId();
//noinspection SimplifiableIfStatement
if(id==R.id.about) {
Toast.makeText(this,"i am about",Toast.LENGTH_SHORT).show();
}
if(id==R.id.settings) {
Toast.makeText(this,"i am settings",Toast.LENGTH_SHORT).show();
}
returntrue;
}
}
android计算汇率代码,android studio 开发实例 连接网络获取汇率相关推荐
- 【Android 逆向】代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )
文章目录 一.等待进程状态改变 二.detach 脱离进程调试 PTRACE_DETACH 三.调试中继续运行程序 PTRACE_CONT 一.等待进程状态改变 上一篇博客 [Android 逆向]代 ...
- SharePoint无代码工作流设计开发实例——交通费报销流程(一)
开发环境: (1)SharePoint Designer 2010 (2)SharePoint Online(Office 365) 关于Office 365和SharePoint Online的相关 ...
- ESP32-网络开发实例-通过NTP获取 Epoch/Unix时间
通过NTP获取 Epoch/Unix时间 NTP代表"网络时间协议",它是用于在计算机系统之间进行时钟同步的网络协议. 换句话说,它用于同步网络中的计算机时钟时间. 本文将介绍如何 ...
- STM32+esp8266,让你的STM32开发板连接网络-----esp8266
分享一下,STM32开发板连接网络的第一种方法:连接esp8266. esp8266与STM32利用串口通信连接,esp8266连接网络,把收到的数据通过串口的方式传输给STM32,之后STM32接收 ...
- visual studio code无法连接网络,五种方法
1:visual s studio code现在无法连接到扩展商店,请稍后再试 2:visual s studio code无法连接网络 解决方法一: 1:设置代理 代理1:自己的局域网代理ip,需要 ...
- android语音机器人代码,Android studio开发小型对话机器人app(实例代码)
前言 偶然在网上看到一个免费机器人接口,所以生此想法,接口地址:http://api.qingyunke.com/,Android开发比爬虫要繁琐得多,所以本文我将细说接口的调用方法,读者可根据思路去 ...
- android增删功能代码,Android Studio开发实战 之 增删改查
增删改查是一个应用最基础的操作,增删改查的流程走通了,下面的路程也就顺利多了.现在使用Android Studio开发一个简单的应用,该应用就实现了增删改查的操作,看似简单,到底简不简单呢,下面开始操 ...
- android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)
JNI开发,实现自己的C代码,helloworld 在这里实现一个简单的demo,完成加载自己的C代码 使用Android studio,一步一步教你实现在屏幕上显示出helloworld 如下图显示 ...
- android登录操作代码,Android Studio实现第三方QQ登录操作代码
来看看效果图吧 实现QQ登录了, 新建一个项目工程 ,然后把我们刚才下载的SDK解压将jar文件夹中的jar包拷贝到我们的项目libs中 导入一个下面架包就可以 项目结构如下 打开我们的清单文件And ...
最新文章
- 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
- Android开发问题集锦
- 创建SSH keys
- 读PPPOE/PPPOA白皮书小结
- 关于matlab中pcolor显示图片时的shading设置问题
- ZooKeeper概述与原理
- QT最方便的LOG库使用Easylogging++,只需要一个头文件
- Vue $nextTick
- 一步一步学Remoting之二:激活模式
- 雪城大学信息安全讲义 二、Unix 安全概览
- 【jvm】jvm优化 jvm linux 大页
- java测试网址_支付宝:电脑网站沙箱测试(Java)
- 读谱对吉他手来说重要吗?试试它提升你的读谱效率
- C语言爱心代码,C语言爱心代码合集(附源码)
- 【雕爷学编程】Arduino动手做(100)---MAX30102手腕心率
- 关于JSON的常见问题以及首字母大写的JSON
- 咖啡每天最多能喝几杯
- The ETH-MAV Team in the MBZ International Robotics Challenge
- ID 发展新方向:OCR证件技术
- 基于微信JAVA后台校园小程序系统设计与实现 开题报告
热门文章
- 2022年,ICPC比赛、CCPC比赛、CCF-CSP考试、蓝桥杯比赛、天梯赛日程
- HDU2107 Founding of HDU【序列处理+最大值】
- UVA10450 POJ1953 World Cup Noise【斐波那契数列】
- CCF NOI1121 逆波兰表达式
- 学习之法 —— 如何阅读代码、如何编写代码
- TensorFlow 学习(六) —— TensorFlow 与 numpy 的交互
- sklearn 与 xgboost 的组合使用
- numpy 辨异(四)—— np.repeat 与 np.tile
- 数学归纳法的相关证明
- Linux 文件拓展名及文件解压方式