android studio 对服务端数据进行增删改查

 AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="xry10Application"
        android:supportsRtl="true"
        android:theme="@style/Theme.Xry10Application"
        android:networkSecurityConfig="@xml/network_config"
        tools:targetApi="31">
        <activity android:name=".xryActivity1"
            android:exported="false"/>
        <activity android:name=".xryActivity2"
            android:exported="false"/>
        <activity android:name=".xryActivity3"
            android:exported="false"/>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

创建network_config.xml文件:(允许传输数据)

<?xml version="1.0" encoding="utf-8" ?>
<network-security-config>
    <base-config cleartextTrafficPermitted="ture">
        <trust-anchors>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>
</network-security-config>

 添加依赖:

implementation 'com.squareup.okhttp3:okhttp:4.1.0'

学生类:

class student (var id :Int,var name:String,var dept:String,var age:Int,var phone:String)

 stuAdapter:

class StuAdapter(var resourceId:Int,var stulist:ArrayList<student>,var context: Context):
    BaseAdapter() {
    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
        var v: View = LayoutInflater.from(context).inflate(R.layout.item, null)
        val model: student = stulist[position]
        val name: TextView = v.findViewById(R.id.studentname)
        val id: TextView = v.findViewById(R.id.studentid)
        val dept: TextView = v.findViewById(R.id.studentcollege)
        name.text = model.name
        id.text = model.id.toString()
        dept.text = model.dept
        return v


    }

    override fun getCount(): Int {
        return stulist.size
    }

    override fun getItem(position: Int): student? {
        return stulist[position]
    }

    override fun getItemId(position: Int): Long {
        return 0
    }
}

插入活动:

class xryActivity1 :AppCompatActivity(){

    lateinit var name:String
    lateinit var dept:String
    lateinit var age:String
    lateinit var phone:String
    @SuppressLint("MissingInflatedId")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_xry1)
        val insert:Button = findViewById(R.id.insert)

        val editText2 :EditText = findViewById(R.id.editTextname)
        val editText3 :EditText = findViewById(R.id.editTextdept)
        val editText4 :EditText = findViewById(R.id.editTextage)
        val editText5 :EditText = findViewById(R.id.editTextphone)
        insert.setOnClickListener {
            name = editText2.text.toString()
            dept = editText3.text.toString()
            age = editText4.text.toString()
            phone = editText5.text.toString()


            sendRequestWithHttpURLConnection()
        }
    }

    private fun sendRequestWithHttpURLConnection() {
        thread {
            try {
                val client = OkHttpClient()
                val requestBody = FormBody.Builder()
                    .add("name",name)
                    .add("dept",dept)
                    .add("age", age)
                    .add("phone",phone)
                    .build()
                val request = Request.Builder()
                    .url("http://2452x7g449.wicp.vip:9998/Service1.asmx/insertStudent")
                    .post(requestBody)
                    .build()
                val response = client.newCall(request).execute()
                val responseData = response.body?.string()
                if(responseData != null){
                    showResponse(responseData)
                }

            } catch (e: Exception) {
                e.printStackTrace()
            }


        }
    }

    private fun showResponse(reponse:String){
        runOnUiThread {
            val intent = Intent(this,MainActivity::class.java,)
            startActivity(intent)
        }
    }

}

另一种写法:

 lateinit var name : String
    lateinit var dept : String
    lateinit var age : String
    lateinit var phone : String
    private val activityZyladdBinding: ActivityZyladdBinding by lazy {
        DataBindingUtil.setContentView(this,R.layout.activity_zyladd)
    }
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_zyladd)
        activityZyladdBinding.charu.setOnClickListener{
            name = activityZyladdBinding.xingming.text.toString()
            dept = activityZyladdBinding.xueyuan.text.toString()
            age = activityZyladdBinding.nianling.text.toString()
            phone = activityZyladdBinding.dianhua.text.toString()
            sendRequestWithOkHttp()
        }
    }

 

 插入页面:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "添加学生记录"
        android:textSize="30sp"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学号:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"
            tools:ignore="SpeakableTextPresentCheck"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"
            tools:ignore="SpeakableTextPresentCheck"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学院:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextdept"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"
            tools:ignore="SpeakableTextPresentCheck"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"
            tools:ignore="SpeakableTextPresentCheck"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextphone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"
            tools:ignore="SpeakableTextPresentCheck"
            />
    </LinearLayout>

    <Button
        android:id="@+id/insert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "插入"
        android:layout_gravity="center"
        />
</LinearLayout>

查询活动:



class xryActivity2:AppCompatActivity(), AdapterView.OnItemClickListener {

    var list=ArrayList<student>()

    @SuppressLint("MissingInflatedId")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_recycleview)

        sendRequestWithHttpURLConnection()
    }

    private fun sendRequestWithHttpURLConnection() {
        thread {
            try {
                val requestBody = FormBody.Builder()
                    .build()
                val client = OkHttpClient()
                val request = Request.Builder()
                    .url("http://2452x7g449.wicp.vip:9998/Service1.asmx/QueryStudents")
                    .post(requestBody)
                    .build()
                val response = client.newCall(request).execute()
                val responseData = response.body?.string()
                if (responseData != null) {
                    for(stu in parseXMLWithPull(responseData)){
                        list.add(stu)
                    }
                    val handler = Handler(Looper.getMainLooper())
                    handler.post{
                        val listview:ListView = findViewById(R.id.listView)
                        val adapter = StuAdapter(R.layout.item, list,this)
                        listview.adapter = adapter
                        listview.setOnItemClickListener(this)
                    }
                }


            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    }
    private fun parseXMLWithPull(xmlDate:String): List<student> {
        val factory = SAXParserFactory.newInstance()
        val xmlReader = factory.newSAXParser().xmlReader
        val handler = xryHandler()
        xmlReader.contentHandler = handler
        xmlReader.parse(InputSource(StringReader(xmlDate)))
        return handler.getstudent()
    }



    override fun onItemClick(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {



        val stus = list[position]


        val intent = Intent(this,xryActivity3::class.java)
        intent.putExtra("stu_id",stus.id.toString())
        intent.putExtra("stu_name",stus.name.toString())
        intent.putExtra("stu_dept",stus.dept.toString())
        intent.putExtra("stu_age",stus.age.toString())
        intent.putExtra("stu_phone",stus.phone.toString())
        startActivity(intent)

    }
}

查询页面:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

activity_item:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:orientation="vertical">
    <TextView
        android:id="@+id/studentname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="20sp"
        android:paddingTop="5sp"
        android:text = "name"
        android:textSize="30sp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="30dp">

        <TextView
            android:id="@+id/studentid"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="20sp"
            android:text="id"
            android:textSize="23sp"
            />

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

            android:paddingLeft="180sp"
            android:paddingRight="20sp"
            android:textSize="23sp"
            android:text="学院"/>
    </LinearLayout>





</LinearLayout>

修改删除活动:

class xryActivity3 :AppCompatActivity() {
    lateinit var id:String
    lateinit var name:String
    lateinit var dept:String
    lateinit var age:String
    lateinit var phone:String

    @SuppressLint("MissingInflatedId")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_xry3)

        val editText2:EditText = findViewById(R.id.editTextname)
        val editText3:EditText = findViewById(R.id.editTextdept)
        val editText4:EditText = findViewById(R.id.editTextage)
        val editText5:EditText = findViewById(R.id.editTextphone)

        val textView: TextView =findViewById(R.id.textViewid)
        textView.text=intent.getStringExtra("stu_id").toString()

        editText2.setText(intent.getStringExtra("stu_name").toString())
        editText3.setText(intent.getStringExtra("stu_dept").toString())
        editText4.setText(intent.getStringExtra("stu_age").toString())
        editText5.setText(intent.getStringExtra("stu_phone").toString())


        val button1: Button = findViewById(R.id.button01)
        button1.setOnClickListener {
            id = textView.text.toString()
            name = editText2.text.toString()
            dept = editText3.text.toString()
            age = editText4.text.toString()
            phone = editText5.text.toString()
            sendRequestWithOkHttp1()
        }
        val button2: Button = findViewById(R.id.button02)
        button2.setOnClickListener {
            id = textView.text.toString()
            sendRequestWithOkHttp2()
        }

    }

    private fun sendRequestWithOkHttp1() {
        thread {
            try {
                val requestBody = FormBody.Builder()
                    .add("id",id)
                    .add("name",name)
                    .add("dept",dept)
                    .add("age",age)
                    .add("phone",phone)
                    .build()
                val client = OkHttpClient()
                val request = Request.Builder()
                    // 指定访问的服务器地址是计算机本机
                    .url("http://2452x7g449.wicp.vip:9998/Service1.asmx/updateStudent")
                    .post(requestBody)
                    .build()
                val response = client.newCall(request).execute()
                val responseData = response.body?.string()
                if (responseData != null) {
                    showResponse(responseData)
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    }

    private fun sendRequestWithOkHttp2() {
        thread {
            try {
                val requestBody = FormBody.Builder()
                    .add("id",id)
                    .build()
                val client = OkHttpClient()
                val request = Request.Builder()
                    .url("http://2452x7g449.wicp.vip:9998/Service1.asmx/deleteStudent")
                    .post(requestBody)
                    .build()
                val response = client.newCall(request).execute()
                val responseData = response.body?.string()
                if (responseData != null) {
                    showResponse(responseData)
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
    }

    private fun showResponse(response: String) {
        runOnUiThread {
            val intent= Intent(this,xryActivity2::class.java)
            startActivity(intent)
        }
    }
}

删除修改界面:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "编辑学生记录"
        android:textSize="30sp"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学号:"
            android:textSize="20sp"/>

        <TextView
            android:id="@+id/textViewid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:text="40"
            android:textSize="20sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="学院:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextdept"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="电话:"
            android:textSize="20sp"/>

        <EditText
            android:id="@+id/editTextphone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:textSize="20sp"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="80dp"
        android:layout_marginTop="20dp"
        android:gravity="center_vertical">

        <Button
            android:id="@+id/button01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text = "修改"
            android:layout_gravity="center"
            />

        <Button
            android:id="@+id/button02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dp"
            android:text = "删除"
            android:layout_gravity="center"
            />
    </LinearLayout>



</LinearLayout>

Handler活动:

class xryHandler :DefaultHandler(){
    val student = mutableListOf<student>()
    var currentElement:String? = null
    var currentStudent:student? = null

    override fun startElement(uri: String?, localName: String?, qName: String?, attributes: Attributes?) {
        currentElement = qName
        if (qName == "Table") {
            currentStudent = student(1,"11","11",11,"11")
        }
    }

    override fun endElement(uri: String?, localName: String?, qName: String?) {
        if (qName == "Table") {
            currentStudent?.let { student.add(it) }
            currentStudent = null
        }
        currentElement = null
    }

    override fun characters(ch: CharArray?, start: Int, length: Int) {
        super.characters(ch, start, length)
        val value = String(ch!!,start,length).trim()
        when(currentElement){
            "id" -> currentStudent?.id = value.toIntOrNull()!!
            "name" -> currentStudent?.name = value
            "dept" -> currentStudent?.dept = value
            "age" -> currentStudent?.age = value.toIntOrNull()!!
            "phone" -> currentStudent?.phone = value
        }
    }
    fun getstudent(): List<student> {
        return student
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值