Java、Android中的回调(callBack)我写的一个网络回调大家可以参考参考
来源:互联网 发布:软件项目合同书 编辑:程序博客网 时间:2024/05/21 14:57
1首先建立一个activity:
Mainactivity.java文件
package com.example.httpclicentcallback;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView1;private Button button1;private EditText editText1;private EditText editText2;private static String result="";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private Handler handler=new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case 0:textView1.setText(result);break;default:break;}};};public void initView(){textView1=(TextView) findViewById(R.id.textView1);button1=(Button) findViewById(R.id.button1);editText1=(EditText) findViewById(R.id.editText1);editText2=(EditText) findViewById(R.id.editText2);button1.setOnClickListener(new OnClickListener() {public void onClick(View arg0) {final String url="你的服务器ip"+"username="+editText1.getText().toString()+"&password="+editText2.getText().toString();new Thread(new Runnable() {@Overridepublic void run() {new HttpClicentTest().compute(url, new HttpCallBackTest() {@Overridepublic void onSuccess(String result) {Log.e("TAG", result);MainActivity.result=result;Message msg=new Message();msg.what=0;handler.sendMessage(msg);//textView1.setText(result);本来我是在这里更新ui的没想到直接报ui线程更新异常,没事咱们用handle更新ui就是了}});}}).start(); }}); }}
xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="14dp" > <requestFocus /> </EditText> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:layout_marginTop="39dp" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_below="@+id/editText2" android:layout_marginTop="45dp" android:text="Button" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/button1" android:layout_below="@+id/button1" android:layout_marginTop="78dp" android:text="TextView" /></RelativeLayout>
2 、定义一个接口:
public interface HttpCallBackTest {public void onSuccess(String result);}
3、建立回调机制
package com.example.httpclicentcallback;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import android.os.AsyncTask;public class HttpClicentTest {public void compute(String url,HttpCallBackTest callback){callback.onSuccess(getHttpContext(url));}public String getHttpContext(String ul){String restlt="";URL url=null;HttpURLConnection connection=null;InputStreamReader in=null;try{url = new URL(ul);connection=(HttpURLConnection) url.openConnection();in=new InputStreamReader(connection.getInputStream());BufferedReader bufferedReader=new BufferedReader(in);StringBuffer strBuffer=new StringBuffer();String line=null;while((line=bufferedReader.readLine())!=null){strBuffer.append(line);}restlt=strBuffer.toString();}catch (Exception e){e.printStackTrace();}finally{if(connection!=null){connection.disconnect();}if(in!=null){try {in.close();} catch (IOException e) {e.printStackTrace();}}}return restlt;}class MyAnsyTask extends AsyncTask<String, Void, String>{@Overrideprotected String doInBackground(String... arg0) {return null;}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);}@Overrideprotected void onProgressUpdate(Void... values) {super.onProgressUpdate(values);}@Overrideprotected void onPreExecute() {super.onPreExecute();} }}
0 0
- Java、Android中的回调(callBack)我写的一个网络回调大家可以参考参考
- 写了一个合并的,大家可以参考下
- 上周末没事写了一个UDP的例子 大家感兴趣的可以参考一下
- Android中的回调Callback
- Android中的回调Callback
- Android中的回调Callback
- 发一个套接字协议中的tcp案例,希望大家以后可以参考!……
- 我理解的回调(callback)
- 我的笔经面经,给大家参考
- 一个困扰了我大半天的问题,把我解决的方法发出来,给大家参考参考
- android java image的操作一些可以的参考
- 各种可以参考的网络文章(持续更新中)
- 看到一个老外写的图像处理文章,感觉不错,翻译过来供大家参考.
- 6、用vb6写一个仿照SPY++的东西,供大家参考学习用
- android实现的计算器功能,可以加减乘除;可以倒退,可以清空文本,大家参考使用吧
- 关于jsp上传文件的代码,大家可以参考一下。
- OC语言,逻辑性的模拟通讯录,大家可以作参考
- 浅谈Android中的回调机制CallBack
- Winfrom 窗体加载数据防止抖动的语句
- poj1149
- hibernate之QBC
- Android 编程下的计时器 和 防止按钮重复点击事件
- msvcr120.dll、msvcp120.dll注册失败
- Java、Android中的回调(callBack)我写的一个网络回调大家可以参考参考
- 给新手的一个可以直接用的二维码扫描demo,放到工程就ok了
- GR/IR明细表
- mac brew maven更新版本
- 关于前端开发
- 如何解决由于备份的ghost镜像文件太大无法在有足够空间的U盘里复制的问题
- Android Activity launchMode Test
- Lucene开发序幕曲之luke神器
- 阅读一款3D引擎的方法备忘