Android与JavaWeb服务器交互教程(3)-一个简单的Android项目

来源:互联网 发布:radio单选按钮js实现 编辑:程序博客网 时间:2024/06/05 05:45

1.前言

是时候该写Android端了。。。

2.创建项目


![](https://image.webprague.com/blog_img_1493542818525)

3.导入xUtils3框架

送上xUtil3框架的传送门
附上jar包的下载地址:
百度云
七牛云
以及json的下载地址
七牛云
百度云
把jar包拷入libs

添加引用



4.编写代码

4.1 添加权限

xUtil3框架需要添加权限才能正常使用
需要添加一下权限:

<uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4.2 添加基础类

在 src/main/jaba/com.imudges.app.androidclient 下添加一个BaseActivity
代码如下:

package com.imudges.app.androidclient;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import org.xutils.x;/** * Created by HUPENG on 2017/4/30. */public class BaseActivity extends AppCompatActivity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        x.view().inject(this);    }}

4.3 修改登录界面资源文件

activity_login.xml 文件位于app/src/main/res/layout/app/src/main/res/layout/
修改之后:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:orientation="vertical"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:weightSum="1"              android:gravity="center">    <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal">        <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_gravity="center_vertical"        />        <EditText                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:id="@+id/et_username"                android:hint="用户名"                android:imeOptions="actionDone"                android:text=""        />    </LinearLayout>    <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:orientation="horizontal"            android:paddingBottom="10dp">        <TextView                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:layout_gravity="center_vertical"        />        <EditText                android:id="@+id/et_password"                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:hint="密码"                android:inputType="textPassword"                android:imeOptions="actionDone"                android:text=""        />    </LinearLayout>    <Button            android:id="@+id/btn_login"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="登录"            android:layout_weight="0.01"            android:textColor="#ffffff"            android:textSize="17dp"    /></LinearLayout>

4.4 完成登录界面逻辑

注意,服务器的地址要改成你自己的服务器的地址

package com.imudges.app.androidclient;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;import com.google.gson.JsonObject;import com.google.gson.JsonParser;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.view.annotation.ContentView;import org.xutils.view.annotation.Event;import org.xutils.view.annotation.ViewInject;import org.xutils.x;@ContentView(R.layout.activity_login)public class LoginActivity extends BaseActivity {    @ViewInject(R.id.et_username)    private EditText etUsername;    @ViewInject(R.id.et_password)    private EditText etPassword;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);    }    @Event(value = R.id.btn_login,type = View.OnClickListener.class)    private void onLoginBtnClick(View view){        /**         * 这里填写你的服务器所在的IP地址替换我的ip地址         * */        try{            RequestParams params = new RequestParams("http://183.175.12.160:8899/login.action");            params.addQueryStringParameter("username",etUsername.getText().toString());            params.addQueryStringParameter("password",etPassword.getText().toString());            x.http().get(params, new Callback.CommonCallback<String>() {                @Override                public void onSuccess(String s) {                    JsonParser jsonParser = new JsonParser();                    JsonObject jsonObject = (JsonObject) jsonParser.parse(s);                    int code = jsonObject.get("code").getAsInt();                    if (code == 0){                        //执行登录成功操作                        Toast.makeText(LoginActivity.this,jsonObject.get("msg").getAsString(),Toast.LENGTH_SHORT).show();                    }else {                        //执行登录失败操作                        Toast.makeText(LoginActivity.this,jsonObject.get("msg").getAsString(),Toast.LENGTH_SHORT).show();                    }                }                @Override                public void onError(Throwable throwable, boolean b) {                }                @Override                public void onCancelled(CancelledException e) {                }                @Override                public void onFinished() {                }            });        }catch (Exception e){            e.printStackTrace();        }    }}

4.5 在包下新建MyApplication

package com.imudges.app.androidclient;import android.app.Application;import org.xutils.x;/** * Created by HUPENG on 2017/4/30. *//** * Created by yangyang on 2017/4/24. */public class MyApplication extends Application {    @Override    public void onCreate() {        super.onCreate();        x.Ext.init(this);//Xutils初始化        x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.    }}

在清单文件中配置Application

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="com.imudges.app.androidclient">    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />    <application            android:allowBackup="true"            android:icon="@mipmap/ic_launcher"            android:label="@string/app_name"            android:supportsRtl="true"            android:theme="@style/AppTheme"            android:name=".MyApplication">        <activity android:name=".LoginActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>    </application></manifest>


下面就可以跑了~~~

最后附上项目源码:
七牛云
百度云

0 0
原创粉丝点击