软件工程

第一个android项目

`

<application
    android:allowBackup="true"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_rules"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Ddemo2"
    android:usesCleartextTraffic="true"
    android:networkSecurityConfig="@xml/network_security_config"
    tools:targetApi="31">
    <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>

package com.example.ddemo2;

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputEditText;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

private TextInputEditText etCourseName;
private AutoCompleteTextView actvTeacher;
private TextInputEditText etLocation;
private Button btnSave;

private OkHttpClient client = new OkHttpClient();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // 初始化视图
    etCourseName = findViewById(R.id.et_course_name);
    actvTeacher = findViewById(R.id.actv_teacher);
    etLocation = findViewById(R.id.et_location);
    btnSave = findViewById(R.id.btn_save);

    // 配置教师下拉菜单
    String[] teachers = {"王建民", "刘丹", "杨子光", "张云霞", "武永亮", "刘立嘉", "高飞", "孙静", "黄荣峰"};
    ArrayAdapter<String> adapter = new ArrayAdapter<>(
            this,
            R.layout.dropdown_item,
            teachers
    );
    actvTeacher.setAdapter(adapter);

    // 保存按钮点击事件
    btnSave.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            saveCourse();
        }
    });
}

private void saveCourse() {
    String courseName = etCourseName.getText().toString().trim();
    String teacher = actvTeacher.getText().toString().trim();
    String location = etLocation.getText().toString().trim();

    if (courseName.isEmpty() || teacher.isEmpty() || location.isEmpty()) {
        Toast.makeText(this, "请填写所有字段", Toast.LENGTH_SHORT).show();
        return;
    }

    // 创建请求体
    RequestBody formBody = new FormBody.Builder()
            .add("classname", courseName)
            .add("teacher", teacher)
            .add("spot", location)
            .build();

    // 创建请求
    Request request = new Request.Builder()
            .url("http://192.168.170.105:8080/class2_war_exploded/addservlet") // 替换为你的服务器 URL
            .post(formBody)
            .build();

    System.out.println("Sending request to: " + request.url());

    // 发送请求
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this, "请求失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
                    System.out.println("Request failed: " + e.getMessage());
                }
            });
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            if (response.isSuccessful()) {
                final String responseData = response.body().string();
                System.out.println("Response successful: " + responseData);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this, "保存成功", Toast.LENGTH_SHORT).show();
                        clearForm();
                    }
                });
            } else {
                System.out.println("Request failed with code: " + response.code());
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this, "请求失败: " + response.code(), Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }
    });
}

private void clearForm() {
    etCourseName.getText().clear();
    actvTeacher.getText().clear();
    etLocation.getText().clear();
}

}
`
``

posted @ 2025-03-13 21:51  ytr123  阅读(9)  评论(0)    收藏  举报