Я работаю над подключением MySQL и Android через PHP
Мое приложение внезапно падает, когда я пишу этот код:
package com.googlecode.javacv.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.kosalgeek.genasync12.AsyncResponse;
import com.kosalgeek.genasync12.PostResponseAsyncTask;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity implements AsyncResponse, View.OnClickListener {
EditText etUsername, etPassword, etname;
Button btnLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername = (EditText)findViewById(R.id.etUsername);
etPassword = (EditText)findViewById(R.id.etPassword);
etname = (EditText)findViewById(R.id.etname);
btnLogin = (Button)findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(this);
}
@Override
public void processFinish(String output) {
Toast.makeText(this, output, Toast.LENGTH_LONG).show();
}
@Override
public void onClick(View v)
{
HashMap postData= new HashMap();
postData.put("txtUsername",etUsername.getText().toString());
postData.put("txtPassword", etPassword.getText().toString());
postData.put("name", etname.getText().toString());
PostResponseAsyncTask task = new PostResponseAsyncTask (MainActivity.this , (AsyncResponse) postData);
task.execute("http://theeatery.org/uet1.php");
}
}
Есть ли какие-либо предположения, почему это так? Пожалуйста, помогите мне выяснить и устранить проблему …
заранее спасибо
Вы используете мою библиотеку из https://github.com/kosalgeek/generic_asynctask_v2. Этот конструктор новой версии нуждается в 3 параметрах: 1) контекст, 2) HashMap и 3) AsyncReponse.
Что вам нужно сделать, это:
1) изменить с:
PostResponseAsyncTask task = new PostResponseAsyncTask (MainActivity.this , (AsyncResponse) postData);
чтобы:
PostResponseAsyncTask task = new PostResponseAsyncTask(MainActivity.this, postData, this);
2) Или лучше использовать его с анонимным классом для обработки AsyncResponse следующим образом:
PostResponseAsyncTask task = new PostResponseAsyncTask(MainActivity.this, postData, new AsyncResponse() {
@Override
public void processFinish(String s) {
Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
}
});
Других решений пока нет …