我收到一个错误,因为在实施 Material Spinner 时发现了错误的参数
i am getting a error as wrong argument found for implementing material spinner
我收到一个错误,错误的第二个参数类型。找到:'com.jaredrummler.materialspinner.MaterialSpinner',要求:'java.lang.String' 级别字符串
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("email", email);
params.put("phone",phone);
params.put("level", level);
return params;
}
我无法找出错误脚本的位置
public class ActivityProfile extends AppCompatActivity {
private static final String TAG = ActivityProfile.class.getSimpleName();
private SQLiteHandler db;
private SessionManager session;
private EditText editname,editemail,editphone;
private Toolbar toolbar;
private Button next;
private MaterialSpinner level;
private static final String[] LEVEL = {
"UnderGraduate" ,"Graduate"
};
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar = (Toolbar) findViewById(R.id.toolbar);
editname =(EditText) findViewById(R.id.name);
editemail =(EditText) findViewById(R.id.email);
editphone = (EditText) findViewById(R.id.phone);
level =(MaterialSpinner) findViewById(R.id.level);
next = (Button) findViewById(R.id.next);
db = new SQLiteHandler(getApplicationContext());
session = new SessionManager(getApplicationContext());
// Fetching user details from sqlite
HashMap<String, String> user = db.getUserDetails();
String name = user.get("name");
String email =user.get("email");
String phone = user.get("phone");
// Displaying the user details on the screen
editname.setText(name);
editemail.setText(email);
editphone.setText(phone);
final MaterialSpinner level = (MaterialSpinner) findViewById(R.id.level);
level.setItems(LEVEL);
level.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
}
});
level.setOnNothingSelectedListener(new MaterialSpinner.OnNothingSelectedListener() {
@Override public void onNothingSelected(MaterialSpinner spinner) {
Snackbar.make(spinner, "Nothing selected", Snackbar.LENGTH_LONG).show();
}
});
next.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
String name = editname.getText().toString();
String email = editemail.getText().toString();
String phone = editphone.getText().toString();
createprofile(name, email,phone,level);
}
});
}
private void createprofile(final String name, final String email,
final String phone,final MaterialSpinner level) {
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_CREATEPROF1, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Profile Response: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
Toast.makeText(getApplicationContext(), "User successfully registered.", Toast.LENGTH_LONG).show();
// Launch login activity
Intent intent = new Intent(
ActivityProfile.this,
VerifyOtp.class);
startActivity(intent);
finish();
} else {
// Error occurred in registration. Get the error
// message
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Registration Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("email", email);
params.put("phone",phone);
params.put("level", level);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq);
}
}
请帮我纠正错误
这是因为您试图在地图中放置不同于 String
的另一个值。
你有一张地图:
Map<String, String> params = new HashMap<String, String>();
有 String
个值(参见 <String, String>
中的第二个 String
词),但是 level
是 MaterialSpinner
的一个实例,所以下面线路失败:
params.put("level", level);
在MaterialSpinner
中定义一个toString
方法并使用:
params.put("level", level.toString());
相反。
或者,您可以尝试从 level
中获取 String
值(例如:level.getName()
- 而不是 level.toString()
),或者(如果您确实需要存储该对象)您需要将地图更改为:
Map<String, Object> params = new HashMap<String, Object>();
如果用JDK7或8,也可以简化为:
Map<String, Object> params = new HashMap<>();
我收到一个错误,错误的第二个参数类型。找到:'com.jaredrummler.materialspinner.MaterialSpinner',要求:'java.lang.String' 级别字符串
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("email", email);
params.put("phone",phone);
params.put("level", level);
return params;
}
我无法找出错误脚本的位置
public class ActivityProfile extends AppCompatActivity {
private static final String TAG = ActivityProfile.class.getSimpleName();
private SQLiteHandler db;
private SessionManager session;
private EditText editname,editemail,editphone;
private Toolbar toolbar;
private Button next;
private MaterialSpinner level;
private static final String[] LEVEL = {
"UnderGraduate" ,"Graduate"
};
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar = (Toolbar) findViewById(R.id.toolbar);
editname =(EditText) findViewById(R.id.name);
editemail =(EditText) findViewById(R.id.email);
editphone = (EditText) findViewById(R.id.phone);
level =(MaterialSpinner) findViewById(R.id.level);
next = (Button) findViewById(R.id.next);
db = new SQLiteHandler(getApplicationContext());
session = new SessionManager(getApplicationContext());
// Fetching user details from sqlite
HashMap<String, String> user = db.getUserDetails();
String name = user.get("name");
String email =user.get("email");
String phone = user.get("phone");
// Displaying the user details on the screen
editname.setText(name);
editemail.setText(email);
editphone.setText(phone);
final MaterialSpinner level = (MaterialSpinner) findViewById(R.id.level);
level.setItems(LEVEL);
level.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
Snackbar.make(view, "Clicked " + item, Snackbar.LENGTH_LONG).show();
}
});
level.setOnNothingSelectedListener(new MaterialSpinner.OnNothingSelectedListener() {
@Override public void onNothingSelected(MaterialSpinner spinner) {
Snackbar.make(spinner, "Nothing selected", Snackbar.LENGTH_LONG).show();
}
});
next.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
String name = editname.getText().toString();
String email = editemail.getText().toString();
String phone = editphone.getText().toString();
createprofile(name, email,phone,level);
}
});
}
private void createprofile(final String name, final String email,
final String phone,final MaterialSpinner level) {
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_CREATEPROF1, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Profile Response: " + response.toString());
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
Toast.makeText(getApplicationContext(), "User successfully registered.", Toast.LENGTH_LONG).show();
// Launch login activity
Intent intent = new Intent(
ActivityProfile.this,
VerifyOtp.class);
startActivity(intent);
finish();
} else {
// Error occurred in registration. Get the error
// message
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Registration Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("name", name);
params.put("email", email);
params.put("phone",phone);
params.put("level", level);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq);
}
}
请帮我纠正错误
这是因为您试图在地图中放置不同于 String
的另一个值。
你有一张地图:
Map<String, String> params = new HashMap<String, String>();
有 String
个值(参见 <String, String>
中的第二个 String
词),但是 level
是 MaterialSpinner
的一个实例,所以下面线路失败:
params.put("level", level);
在MaterialSpinner
中定义一个toString
方法并使用:
params.put("level", level.toString());
相反。
或者,您可以尝试从 level
中获取 String
值(例如:level.getName()
- 而不是 level.toString()
),或者(如果您确实需要存储该对象)您需要将地图更改为:
Map<String, Object> params = new HashMap<String, Object>();
如果用JDK7或8,也可以简化为:
Map<String, Object> params = new HashMap<>();