gpt4 book ai didi

java - 无法解析符号 'v' 和预期的 ) 和 ;

转载 作者:行者123 更新时间:2023-12-01 21:08:26 25 4
gpt4 key购买 nike

请帮助解决此错误。我似乎无法理解。

我在这部分有错误。

 signup.setOnClickListener((v) → {
String uName = username.getText().toString().trim();
String mail = email.getText().toString().trim();
String pass = password.getText().toString().trim();

signup(uName, mail, pass);

});

完整代码:

public class SignUp extends AppCompatActivity {
private String TAG = SignUp.class.getSimpleName();
private EditText username, email, password;
private Button signup;
private ProgressDialog progressDialog;
private UserSession session;
private UserInfo userInfo;
/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
private GoogleApiClient client2;

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

username = (EditText) findViewById(R.id.username);
email = (EditText) findViewById(R.id.email);
password = (EditText) findViewById(R.id.password);
signup = (Button) findViewById(R.id.signup);
progressDialog = new ProgressDialog(this);

GoogleApiClient client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

session = new UserSession(this);
userInfo = new UserInfo(this);


signup.setOnClickListener((v) → {
String uName = username.getText().toString().trim();
String mail = email.getText().toString().trim();
String pass = password.getText().toString().trim();

signup(uName, mail, pass);

});

// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client2 = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
}

private void signup(final String username, final String email, final String password) {
//Tag used to cancel the request
String tag_string_req = "req_signup";
progressDialog.setMessage("Signing up...");
progressDialog.show();

StringRequest strReq = new StringRequest(Request.Method.POST,
Utils.REGISTER_URL, new Response.Listener<String>() {

@Override
public void onResponse(String response) {
Log.d(TAG, "Register Response: " + response.toString());

try {
JSONObject jOBj = new JSONObject(response);
boolean error = jOBj.getBoolean("error");

//Check for error node in json
if (!error) {
JSONObject user = jOBj.getJSONObject("user");
String uName = user.getString("username");
String email = user.getString("email");

//Inserting row in users table
userInfo.setEmail(email);
userInfo.setUsername(uName);
session.setLoggedin(true);

startActivity(new Intent(SignUp.this, MainActivity.class));

} else {
//Error in login. Get the error message
String errorMsg = jOBj.getString("error_msg");
toast(errorMsg);
}
} catch (JSONException e) {
//JSON error
e.printStackTrace();
toast("Json error: " + e.getMessage());
}

}


}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Login Error: " + error.getMessage());
toast("Unknown Error occured");
progressDialog.hide();
}
}) {

@Override
protected Map<String, String> getParams() {
//posting parameters to login url
Map<String, String> params = new HashMap<>();
params.put("username", username);
params.put("email", email);
params.put("password", password);

return params;
}

};
}

private void toast(String x) {
Toast.makeText(this, x, Toast.LENGTH_SHORT)
}


/**
* ATTENTION: This was auto-generated to implement the App Indexing API.
* See https://g.co/AppIndexing/AndroidStudio for more information.
*/
public Action getIndexApiAction() {
Thing object = new Thing.Builder()
.setName("SignUp Page") // TODO: Define a title for the content shown.
// TODO: Make sure this auto-generated URL is correct.
.setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}

@Override
public void onStart() {
super.onStart();

// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
client2.connect();
AppIndex.AppIndexApi.start(client2, getIndexApiAction());
}

@Override
public void onStop() {
super.onStop();

// ATTENTION: This was auto-generated to implement the App Indexing API.
// See https://g.co/AppIndexing/AndroidStudio for more information.
AppIndex.AppIndexApi.end(client2, getIndexApiAction());
client2.disconnect();
}
}

请解释发生了什么。

最佳答案

lambda 语法使用 ->,而不是 。你从哪里得到这个?(编辑:似乎这是 IntelliJ 的代码缩短。您是从 IntelliJ 复制的吗?)

如果你想使用 lambda,请使用它。

signup.setOnClickListener(v -> {
String uName = username.getText().toString().trim();
String mail = email.getText().toString().trim();
String pass = password.getText().toString().trim();
signup(uName, mail, pass);
});

这仅适用于 Java 8(在 Gradle 文件等中设置您的版本)请参阅Use Java 8 Language Features .

编辑:Java 7 及更低版本不支持 lambda。如果您想使用 Java < 8,请使用完整接口(interface)和匿名内部类:

signup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String uName = username.getText().toString().trim();
String mail = email.getText().toString().trim();
String pass = password.getText().toString().trim();
signup(uName, mail, pass);
}
});

编辑:为什么使用getText().toString()getText 不会返回一个 String 吗?您可以在代码中删除对 toString 的这些调用。

关于java - 无法解析符号 'v' 和预期的 ) 和 ;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41801833/

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