我的应用程序中有一个实现对话框 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/