提问者:小点点

从android studio向phpmyadmin添加数据时出现问题


我是安卓的初学者。 但是我在将android studio中的数据添加到phpMyAdmin时遇到了问题。 我找到了一个准备好的代码,但是由于某种原因,当我点击按钮时,应用程序崩溃了。 我认为问题出在“networkcalls”上。<>如果我删除它,那么应用程序不会崩溃,但不会执行该功能。

activity:

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context="com.test.test.ScreenOne">

    <EditText
        android:id="@+id/etUsername"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="330dp"/>

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="400dp"/>

    <Button
        android:id="@+id/bSave"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="save"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="600dp"
        android:onClick="saveb"/>
</RelativeLayout>

MainCode:

package com.test.test;

import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import java.util.HashMap;
import java.util.Map;

public class ScreenOne extends AppCompatActivity {

    private static final String URL_SAVE = "http://IP/save.php";
    private EditText username;
    private EditText password;
    Button save;
    String name;
    String pass;

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

        username = (EditText) findViewById(R.id.etUsername);
        password = (EditText) findViewById(R.id.etPassword);

        save = (Button) findViewById(R.id.bSave);
    }

    public void saveb(View view) {
        saveRequest();

    }

    private void saveRequest() {
        name = username.getText().toString().trim();
        pass = password.getText().toString().trim();
        final ProgressDialog mDialog = new ProgressDialog(this);
        mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        mDialog.setMessage("Loading...");
        mDialog.show();



        StringRequest request = new StringRequest(Request.Method.POST, URL_SAVE,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        mDialog.dismiss();
                        Toast.makeText(ScreenOne.this, response, Toast.LENGTH_LONG).show();
                        username.setText("");
                        password.setText("");
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        mDialog.dismiss();
                        Toast.makeText(ScreenOne.this, "Something went wrong", Toast.LENGTH_LONG).show();
                    }
                }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> key = new HashMap<>();
                key.put("username", name);
                key.put("password", pass);
                return key;
            }
        };

        NetworkCalls.getInstance().addToRequestQueue(request);
    }


}

网络呼叫:

    package com.test.test;
    
    import android.content.Context;
    
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.toolbox.Volley;
    
    public class NetworkCalls {
        private RequestQueue requestQueue;
        private static Context context;
    
        private static NetworkCalls ourInstance = new NetworkCalls();
    
        public static NetworkCalls getInstance() {
            return ourInstance;
        }
    
        private NetworkCalls() {
        }
    
        public RequestQueue getRequestQueue(){
            requestQueue = Volley.newRequestQueue(context.getApplicationContext());
            return requestQueue;
        }
    
        public <T> void addToRequestQueue(Request<T> request){
            getRequestQueue().add(request);
        }
    }

共1个答案

匿名用户

如果我没听错的话,下面是:

任务:app:prebuild最新任务:app:predebugbuild最新任务:app:compileDebugAidl无源任务:app:compileDebugRenderScript无源任务:app:generateDebugBuildConfig最新任务:app:javaprecompileDebuildConfig最新任务:app:javaprecompileDebuildConfig最新任务:app:generateDebugResources最新任务:app:mergedebugResources最新任务:app:mergedebugResources最新任务:app: 任务:app:checkdebugduplicateClass最新任务:app:dexbuilderdebug最新任务:app:mergeextdexdebug最新任务:app:mergedexdebug最新任务:app:mergedebugjnilibfolders最新任务:app:mergedebugnativelibs最新任务:app:stripdebugdebugsymbols无源任务:app:validatesigningdebug最新任务:app:assembledebug最新任务:app:assembledebug

在1M 7S中成功生成20个可操作任务:20个最新任务

生成分析器结果可用