gpt4 book ai didi

java - LoginActivity.AttemptLogin 不是抽象的,不会覆盖 AsyncTask 中的抽象方法 doInBackground(Object...)

转载 作者:行者123 更新时间:2023-12-01 07:49:10 25 4
gpt4 key购买 nike

我正在尝试在本地数据库中发送并验证我的登录凭据,因此我使用了 json,以便将条目放入 json 对象并使用 json 解析器类对其进行解析。

这是我的代码:

import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;

public class LoginActivity extends AppCompatActivity {
EditText editEmail, editPassword, editUserName, editName, editBikeName, editBikeNo;
Button btnSignIn,btnRegister;
TextView regText, bikeText, pedText;

String URL= "http://192.168.225.22/android/index.php";

JSONParser jsonParser=new JSONParser();

int i=0,j=0;

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

editEmail=(EditText)findViewById(R.id.editEmail);
editUserName=(EditText)findViewById(R.id.editUserName);
editPassword=(EditText)findViewById(R.id.editPassword);
editName=(EditText)findViewById(R.id.editName);
editBikeName=(EditText)findViewById(R.id.editBikeName);
editBikeNo=(EditText)findViewById(R.id.editBikeNo);
regText=(TextView)findViewById(R.id.regText);
btnSignIn=(Button)findViewById(R.id.btnSignIn);
btnRegister=(Button)findViewById(R.id.btnRegister);
btnSignIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AttemptLogin attemptLogin= new AttemptLogin();
attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),"");
}
});

regText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

if(i==0)
{
i=1;
editName.setVisibility(View.VISIBLE);
editEmail.setVisibility(View.VISIBLE);
btnRegister.setVisibility(View.VISIBLE);
bikeText.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
if(j==0)
{
j=1;
editBikeName.setVisibility(View.VISIBLE);
editBikeNo.setVisibility(View.VISIBLE);
}
}
});

btnSignIn.setVisibility(View.GONE);
regText.setVisibility(View.GONE);
pedText.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
if(j==1)
{
j=0;
editBikeName.setVisibility(View.GONE);
editBikeNo.setVisibility(View.GONE);
}
}
});
}
else{

editEmail.setVisibility(View.GONE);
btnSignIn.setVisibility(View.VISIBLE);
btnRegister.setVisibility(View.GONE);
i=0;

AttemptLogin attemptLogin= new AttemptLogin();
attemptLogin.execute(editName.getText().toString(),editPassword.getText().toString(),editEmail.getText().toString());

}

}
});


}

public class AttemptLogin extends AsyncTask
{

@Override
protected JSONObject doInBackground(String[] param)
{
String email = param[2];
String password = param[1];
String uname= param[0];

ArrayList params = new ArrayList();
params.add(new BasicNameValuePair("username", uname));
params.add(new BasicNameValuePair("password", password));
if(email.length()>0)
params.add(new BasicNameValuePair("email",email));

JSONObject json = jsonParser.makeHttpRequest(URL, "POST", params);


return json;

}

@Override

protected void onPreExecute() {

super.onPreExecute();

}

protected void onPostExecute(JSONObject result) {

// dismiss the dialog once product deleted
//Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();

try {
if (result != null) {
Toast.makeText(getApplicationContext(),result.getString("message"),Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Unable to retrieve any data from server", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}


}

}
}

现在我收到一个错误,例如

    Error:(250, 12) error: LoginActivity.AttemptLogin is not abstract and does not override abstract method doInBackground(Object...) in AsyncTask

最佳答案

替换:

extends AsyncTask

与:

extends AsyncTask<String, Void, JSONObject>

请注意,任何有关 Android 应用开发的现代书籍或类(class)都介绍了 AsyncTask 的使用。

这是 AsyncTask 流程图: enter image description here

关于java - LoginActivity.AttemptLogin 不是抽象的,不会覆盖 AsyncTask 中的抽象方法 doInBackground(Object...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42032444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com