Android studio web服务

activity_add布局:

<TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10dp"
        android:text="添加学生记录"
        android:textSize="50dp">
    </TextView>
    
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/nameName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="姓名">
        </TextView>

        <EditText
            android:id="@+id/Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/nameName"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/college"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="学院">
        </TextView>

        <EditText
            android:id="@+id/collegeName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/college"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="年龄">
        </TextView>

        <EditText
            android:id="@+id/ageNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/age"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="电话">
        </TextView>

        <EditText
            android:id="@+id/phoneNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/phone"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="插入"
        android:textSize="20dp"
        android:padding="20dp">
    </Button>

AddActivity:

package com.example.yzlweek8

import android.content.ContentValues
import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.contentValuesOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import okhttp3.Call
import okhttp3.Callback
import okhttp3.FormBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import java.io.IOException

class AddActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add)
        val addButton=findViewById<Button>(R.id.addButton)
//        val idNumber=findViewById<EditText>(R.id.idNumber)
        val Name=findViewById<EditText>(R.id.Name)
        val collegeName=findViewById<EditText>(R.id.collegeName)
        val ageNumber=findViewById<EditText>(R.id.ageNumber)
        val phoneNumber=findViewById<EditText>(R.id.phoneNumber)

        addButton.setOnClickListener {
            val client = OkHttpClient()
            val url = "http://2452x7g449.wicp.vip:9998/Service1.asmx/insertStudent"

            val requestBody = FormBody.Builder()
                .add("name",Name.text.toString())
                .add("dept",collegeName.text.toString())
                .add("age",ageNumber.text.toString())
                .add("phone",phoneNumber.text.toString())
                .build()

            val request = Request.Builder()
                .url(url)
                .post(requestBody)
                .build()

            client.newCall(request).enqueue(object : Callback {
                override fun onFailure(call: Call, e: IOException) {
                    e.printStackTrace()
                }

                override fun onResponse(call: Call, response: Response) {
                    if (response.isSuccessful) {
                        // 解析响应内容
                        Log.d("DeleteActivity", "插入成功")
                    } else {
                        Log.d("DeleteActivity", "插入失败")
                    }
                }
            })
            finish()
        }
    }
}

activity_delete布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DeleteActivity"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10dp"
        android:text="编辑学生记录"
        android:textSize="50dp">
    </TextView>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/idName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:padding="10dp"
            android:text="学号">
        </TextView>

        <TextView
            android:id="@+id/idNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/idName"
            android:padding="10dp">
        </TextView>

    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/nameName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="姓名">
        </TextView>

        <EditText
            android:id="@+id/Name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/nameName"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/college"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="学院">
        </TextView>

        <EditText
            android:id="@+id/collegeName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/college"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="年龄">
        </TextView>

        <EditText
            android:id="@+id/ageNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/age"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="20dp">

        <TextView
            android:id="@+id/phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="电话">
        </TextView>

        <EditText
            android:id="@+id/phoneNumber"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/phone"
            android:maxLines="1">
        </EditText>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        >

        <Button
            android:id="@+id/updateButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:padding="20dp"
            android:text="修改"
            android:textColor="@color/white">
        </Button>

        <Button
            android:id="@+id/deleteButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20dp"
            android:layout_toRightOf="@+id/updateButton"
            android:layout_marginLeft="10dp"
            android:padding="20dp"
            android:text="删除"
            android:textColor="@color/white">
        </Button>
    </RelativeLayout>

</LinearLayout>

DeleteAcitivity:

package com.example.yzlweek8

import android.content.ContentValues
import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.widget.Button
import android.widget.EditText
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.contentValuesOf
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import okhttp3.Call
import okhttp3.Callback
import okhttp3.FormBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import java.io.IOException

class AddActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add)
        val addButton=findViewById<Button>(R.id.addButton)
//        val idNumber=findViewById<EditText>(R.id.idNumber)
        val Name=findViewById<EditText>(R.id.Name)
        val collegeName=findViewById<EditText>(R.id.collegeName)
        val ageNumber=findViewById<EditText>(R.id.ageNumber)
        val phoneNumber=findViewById<EditText>(R.id.phoneNumber)

        addButton.setOnClickListener {
            val client = OkHttpClient()
            val url = "http://2452x7g449.wicp.vip:9998/Service1.asmx/insertStudent"

            val requestBody = FormBody.Builder()
                .add("name",Name.text.toString())
                .add("dept",collegeName.text.toString())
                .add("age",ageNumber.text.toString())
                .add("phone",phoneNumber.text.toString())
                .build()

            val request = Request.Builder()
                .url(url)
                .post(requestBody)
                .build()

            client.newCall(request).enqueue(object : Callback {
                override fun onFailure(call: Call, e: IOException) {
                    e.printStackTrace()
                }

                override fun onResponse(call: Call, response: Response) {
                    if (response.isSuccessful) {
                        // 解析响应内容
                        Log.d("DeleteActivity", "插入成功")
                    } else {
                        Log.d("DeleteActivity", "插入失败")
                    }
                }
            })
            finish()
        }
    }
}

activity_main布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <Button
        android:id="@+id/AddButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add data">
    </Button>

    <Button
        android:id="@+id/QueryOrReviseButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Query&amp;Revise data">
    </Button>

</LinearLayout>

mainActivity:

package com.example.yzlweek8

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val QueryOrReviseButton=findViewById<Button>(R.id.QueryOrReviseButton)
        val AddButton=findViewById<Button>(R.id.AddButton)


        AddButton.setOnClickListener {
            val intent=Intent(this,AddActivity::class.java)
            startActivity(intent)
        }

        QueryOrReviseButton.setOnClickListener {
            val intent= Intent(this,queryActivity::class.java)
            startActivity(intent)
        }
    }
}

activity_querry布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".queryActivity"
    android:orientation="vertical">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </ListView>
</LinearLayout>

 querryActivity:

package com.example.yzlweek8

import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.util.Log
import android.view.Menu
import android.view.MenuItem
import android.widget.ListView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import okhttp3.Call
import okhttp3.Callback
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserFactory
import java.io.IOException
import java.io.StringReader
import kotlin.concurrent.thread

class queryActivity() : AppCompatActivity() {
    private val studentList=ArrayList<Student>()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_query)
        refresh()
    }

    fun refresh() {
        studentList.clear()
        HttpUtil.QueryStudents("http://2452x7g449.wicp.vip:9998/Service1.asmx/QueryStudents",object :
            Callback {
            override fun onResponse(call: Call, response: Response) {
                val responseData=response.body?.string()
                if (responseData!=null){
                    parseXMLWithPull(responseData)
                }
            }

            override fun onFailure(call: Call, e: IOException) {
                e.printStackTrace()
            }
        })
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main,menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.refresh -> refresh()
        }
        return true
    }


    private fun parseXMLWithPull(xmlData:String){
        try {
            val factory= XmlPullParserFactory.newInstance()
            val xmlPullParser=factory.newPullParser()
            xmlPullParser.setInput(StringReader(xmlData))
            var eventType=xmlPullParser.eventType
            var id=""
            var name=""
            var dept=""
            var age=""
            var phone=""
            while (eventType!= XmlPullParser.END_DOCUMENT){
                val nodeName=xmlPullParser.name
                when(eventType){
                    //开始解析某个节点
                    XmlPullParser.START_TAG->{
                        when(nodeName){
                            "id"->id=xmlPullParser.nextText()
                            "name"->name=xmlPullParser.nextText()
                            "dept"->dept=xmlPullParser.nextText()
                            "age"->age=xmlPullParser.nextText()
                            "phone"->phone=xmlPullParser.nextText()
                        }
                    }
                    //完成解析某个节点'
                    XmlPullParser.END_TAG->{
                        if("Table"==nodeName){
                            Log.d("MainActivity", "id is $id")
                            Log.d("MainActivity", "name is $name")
                            Log.d("MainActivity", "dept is $dept")
                            Log.d("MainActivity", "age is $age")
                            Log.d("MainActivity", "phone is $phone")
                            studentList.add(Student(id,name,dept,age,phone))
                        }
                    }
                }
                eventType=xmlPullParser.next()
            }

            // 在主线程中更新 UI
            runOnUiThread {
                val adapter = StudentAdapter(this, R.layout.student_item, studentList)
                val listView = findViewById<ListView>(R.id.listView)
                listView.adapter = adapter
                listView.setOnItemClickListener { parent, view, position, id ->
                    val student = studentList[position]
                    val intent = Intent(this, DeleteActivity::class.java).apply {
                        putExtra("student_id", student.id)
                        putExtra("student_name",student.name)
                        putExtra("student_dept",student.dept)
                        putExtra("student_age",student.age)
                        putExtra("student_phone",student.phone)
                    }
                    startActivity(intent)
                }
            }
        }catch (e:Exception){
            e.printStackTrace()
        }
    }


}

student_item布局:

<?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="60dp">


    <RelativeLayout
        android:id="@+id/leftLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical">
        <TextView
            android:id="@+id/StudentName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_marginLeft="10dp">
        </TextView>

        <TextView
            android:id="@+id/StudentId"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_below="@+id/StudentName"
            android:layout_marginLeft="10dp">
        </TextView>

        <TextView
            android:id="@+id/StudentCollege"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:layout_marginRight="10dp">
        </TextView>
    </RelativeLayout>

</LinearLayout>

StudentAdapter:

package com.example.yzlweek8

import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.TextView

class StudentAdapter(activity: Activity,val resourceId:Int,data:List<Student>):ArrayAdapter<Student>(activity,resourceId,data) {
    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        val view=LayoutInflater.from(context).inflate(resourceId,parent,false)
        val StudentName=view.findViewById<TextView>(R.id.StudentName)
        val StudentId=view.findViewById<TextView>(R.id.StudentId)
        val StudentCollege=view.findViewById<TextView>(R.id.StudentCollege)
        val student=getItem(position)
        if (student!=null){
            StudentName.text=student.name
            StudentId.text=student.id
            StudentCollege.text=student.dept
        }
        return view
    }
}

student:

package com.example.yzlweek8

class Student(val id:String,val name:String,val dept:String,val age:String,val phone:String)

HttpUtil:

package com.example.yzlweek8

import okhttp3.OkHttpClient
import okhttp3.Request
import java.io.BufferedReader
import java.io.InputStreamReader
import java.lang.StringBuilder
import java.net.HttpURLConnection
import java.net.Inet4Address
import java.net.URL
import kotlin.concurrent.thread

object HttpUtil {
    fun QueryStudents(address: String,callback:okhttp3.Callback){
        val client=OkHttpClient()
        val request=Request.Builder()
            .url(address)
            .build()
        client.newCall(request).enqueue(callback)
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值