Java 截击超时错误…数据插入两次

Java 截击超时错误…数据插入两次,java,android,database,android-volley,Java,Android,Database,Android Volley,每次尝试插入数据时,我都会收到截击超时错误。尽管有错误,但数据插入正确,但每次按下按钮时,数据插入两次。 我只需要删除错误并插入数据一次。此外,单击按钮显示错误后需要花费太多时间 package com.example.sumit.myapplication; import android.content.Context; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.suppor

每次尝试插入数据时,我都会收到
截击超时错误
。尽管有错误,但数据插入正确,但每次按下
按钮时,数据插入两次。
我只需要删除
错误
并插入数据一次。此外,单击
按钮
显示错误后需要花费太多时间

package com.example.sumit.myapplication;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.widget.CardView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.MutableData;
import com.google.firebase.database.Transaction;
import com.google.firebase.database.ValueEventListener;

import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;

/**
* Created by Sumit on 20-02-2018.
*/

public class register extends Fragment{
RequestQueue requestQueue;
public View onCreateView(LayoutInflater inflater, ViewGroup container,                     Bundle savedInstanceState){
    getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    View v = inflater.inflate(R.layout.login,container,false);
    return v;
}
public void onCreate(Bundle savedInstancesState)
{
    super.onCreate(savedInstancesState);
    TextView t = (TextView) ((MainActivity) getActivity()).findViewById(R.id.textView3);
    t.setText("Register");

}


@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {


    final View vt = super.getView();
    final CardView b=(CardView)vt.findViewById(R.id.cardView);
    final TextView txt = (TextView)vt.findViewById(R.id.uid);
    final EditText txt1 = (EditText) vt.findViewById(R.id.editText);
    final EditText txt2 = (EditText) vt.findViewById(R.id.editText2);
    final EditText txt3 = (EditText) vt.findViewById(R.id.editText3);
    final EditText txt4 = (EditText) vt.findViewById(R.id.editText4);
    final Spinner hostel1=(Spinner) vt.findViewById(R.id.spinner1);
    final Spinner branch1=(Spinner) vt.findViewById(R.id.spinner2);
    final String HttpUrl = "https://testzineapp.000webhostapp.com/insert_record.php";




    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View vt) {

            final String id=txt1.getText().toString().trim();
            final String name=txt2.getText().toString().trim();
            final String number=txt3.getText().toString().trim();
            final String email=txt4.getText().toString().trim();
            final String hostel=hostel1.getSelectedItem().toString().trim();
            final String branch=branch1.getSelectedItem().toString().trim();

            StringRequest stringRequest = new StringRequest(Request.Method.POST, HttpUrl,
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String ServerResponse) {

                            // Showing response message coming from server.
                            Toast.makeText(getContext(), ServerResponse, Toast.LENGTH_LONG).show();
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError volleyError) {

                            // Showing error message if something goes wrong.
                            Toast.makeText(getContext(), volleyError.toString(), Toast.LENGTH_LONG).show();
                        }
                    }) {
                @Override
                protected Map<String, String> getParams() {

                    // Creating Map String Params.
                    Map<String, String> params = new HashMap<String, String>();

                    // Adding All values to Params.
                    params.put("College_ID", id);
                    params.put("Name", name);
                    params.put("Mobile_Number", number);
                    params.put("Email_ID", email);
                    params.put("Hosteller", hostel);
                    params.put("Branch", branch);

                    return params;
                }

            };

            // Creating RequestQueue.
            RequestQueue requestQueue = Volley.newRequestQueue(getContext());

            // Adding the StringRequest object into requestQueue.
            requestQueue.add(stringRequest);
            txt1.setText("");
            txt2.setText("");
            txt3.setText("");
            txt4.setText("");


};
    });
    super.onViewCreated(view, savedInstanceState);
}
}
package com.example.sumit.myapplication;
导入android.content.Context;
导入android.content.pm.ActivityInfo;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.support.v7.widget.CardView;
导入android.text.TextUtils;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.WindowManager;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.MutableData;
导入com.google.firebase.database.Transaction;
导入com.google.firebase.database.ValueEventListener;
导入java.sql.Connection;
导入java.util.HashMap;
导入java.util.Map;
/**
*Sumit于2018年2月20日创建。
*/
公共类寄存器扩展片段{
请求队列请求队列;
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
getActivity().setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u Grait);
视图v=充气机。充气(R.layout.login,container,false);
返回v;
}
创建时的公共void(Bundle savedinstancestate)
{
super.onCreate(savedinstancestate);
TextView t=(TextView)((MainActivity)getActivity()).findViewById(R.id.textView3);
t、 setText(“登记册”);
}
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
最终视图vt=super.getView();
最终CardView b=(CardView)vt.findViewById(R.id.CardView);
最终文本视图txt=(文本视图)vt.findviewbyd(R.id.uid);
最终EditText txt1=(EditText)vt.findViewById(R.id.EditText);
最终EditText txt2=(EditText)vt.findViewById(R.id.editText2);
最终EditText txt3=(EditText)vt.findViewById(R.id.editText3);
最终EditText txt4=(EditText)vt.findViewById(R.id.editText4);
最终纺纱机主机1=(纺纱机)vt.findviewbyd(R.id.spinner1);
最终微调器branch1=(微调器)vt.findViewById(R.id.spinner2);
最终字符串HttpUrl=”https://testzineapp.000webhostapp.com/insert_record.php";
b、 setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(查看vt){
最终字符串id=txt1.getText().toString().trim();
最终字符串名称=txt2.getText().toString().trim();
最终字符串编号=txt3.getText().toString().trim();
最后一个字符串email=txt4.getText().toString().trim();
最后一个字符串hostel=hostel1.getSelectedItem().toString().trim();
最后一个字符串branch=branch1.getSelectedItem().toString().trim();
StringRequest StringRequest=新的StringRequest(Request.Method.POST,HttpUrl,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串ServerResponse){
//显示来自服务器的响应消息。
Toast.makeText(getContext(),ServerResponse,Toast.LENGTH_LONG).show();
}
},
新的Response.ErrorListener(){
@凌驾
公共错误响应(截击错误截击错误){
//如果出现错误,则显示错误消息。
Toast.makeText(getContext(),volleyError.toString(),Toast.LENGTH_LONG.show();
}
}) {
@凌驾
受保护的映射getParams(){
//正在创建映射字符串参数。
Map params=新的HashMap();
//将所有值添加到参数。
参数put(“学院ID”,ID);
参数put(“名称”,名称);
参数put(“手机号码”,数字);
参数put(“Email_ID”,Email);
params.put(“旅舍”,旅舍);
参数put(“分支”,分支);
返回参数;
}
};
//正在创建请求队列。
RequestQueue RequestQueue=Volley.newRequestQueue(getContext());
//将StringRequest对象添加到requestQueue中。
添加(stringRequest);
txt1.setText(“”);
txt2.setText(“”);
txt3.setText(“”);
txt4.setText(“”);
};
});
super.onViewCreated(视图,savedInstanceState);
}
}

由于截取默认重试策略,您的请求被处理了两次,请尝试使用此代码以避免它

stringRequest.setRetryPolicy(new DefaultRetryPolicy(20 * 1000, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        RequestQueue requestQueue = Volley.newRequestQueue(_context);
        requestQueue.add(stringRequest);

非常感谢您…它解决了两次保存问题…但有时数据插入成功,有时我出现错误…显示错误/响应所花费的时间太长好的..我还认为这是服务器端错误,因为它现在正确地接受值,没有任何错误。。我还有一个问题,我想把数据库中的数据打印到活动上。我想在addi之后获得该注册用户的ID