Android , Dialog Fragment 与 Mysql 数据库使用 Volley

标签 android mysql

我的应用程序中有一个实现对话框 fragment 的 fragment
我需要通过 Volley 向 php 发送信息的问题
信息是从对话框 fragment 中的编辑文本中输入的

这是我 fragment 中的代码
当我按下对话框 fragment 按钮时的问题没有任何 react
我的 php 文件工作正常

    package com.kid.crypto.cryptokid;


    import android.app.Dialog;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    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 org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

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


    /**
     * A simple {@link Fragment} subclass.
     */
    public class Sport extends Fragment implements View.OnClickListener {
       String URLup="http://v3rlust-001-site1.etempurl.com/up.php" ;


    public Sport() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_sport, container, false);
        Button task1 = (Button) view.findViewById(R.id.task1b);
        task1.setOnClickListener(this);
        return view;
    }

    public void dialogTask1() {
        final Dialog task1 = new Dialog(getActivity());
        task1.setTitle("TASK 1 20 point");
        task1.setContentView(R.layout.task1sport);
        Button a = (Button) task1.findViewById(R.id.task1submit);
        a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText answer = (EditText) task1.findViewById(R.id.answertask1);
                String answer1 = answer.getText().toString();
                if (answer1.contains("tunis")) {
                    Bundle bundle = getActivity().getIntent().getExtras();
                    Users u = new Users() ;
                    String Stscore=bundle.getString("score") ;
                    final String username= bundle.getString("username") ;
                    int s = Integer.parseInt(Stscore) ;
                    int Score=100+s ;
                    final String Stscore1 = Integer.toString(Score) ;
                    StringRequest stringRequest = new StringRequest(Request.Method.POST,URLup,
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {

                                }
                            }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {

                        }
                    }){
                        @Override
                        protected Map<String, String> getParams() throws AuthFailureError {
                            Map <String,String> params= new HashMap<String, String>() ;
                            params.put("username",username) ;
                            params.put("score",Stscore1) ;

                            return params ;
                        }
                    }; Volleyclass.getmInstance(getActivity()).addToRequestque(stringRequest);


                } else {
                    Toast msg1 = Toast.makeText(getActivity(), "false answer", Toast.LENGTH_LONG);
                    msg1.show();

                }

            }
        });

                     task1.show() ;
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.task1b:
                dialogTask1();
                break;

        }
    }
}

最佳答案

您可以更改您的代码,例如

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.task1b:
            dialogTask1(new View.OnClickListener() {

...
...
});
            break;

    }
}

在您的 a.setOnClickListener() 中,您可以提供 View.OnClickListener 对象。

关于Android , Dialog Fragment 与 Mysql 数据库使用 Volley,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998570/

相关文章:

android - actionbar 中的水平进度条宽度

Android - 向通知添加 Intent

android - jenkins 构建失败,未找到 adb

php - MySQL:SHOW TABLES 只返回第一个表

mysql - TSQL - 求和和选择

android - 从 NavigationView android 中删除分线器

java - 加载时删除 webview 加载器

mysql - 如何在 SQL 中使用空虚拟列过滤查询?

php - 如何将&lt;input type ="time"/>中输入的值插入数据库?

php - 如何在AJAX中显示MYSQL错误?