我试图在我的OnClick中获取Spinner的值时得到一个空对象引用,这就是我设置Spinner值的方法
DatabaseReference db1 = firebaseDatabase.getReference("USERS/"+getArguments().getString("Usr"));
db1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.child("uList").getValue().toString() != null && tem)
{
String temp1 = dataSnapshot.child("uList").getValue().toString();
String [] m =temp1.split(",");
for(j=0;j<=m.length-1;j++){
if(m[j] !=null && m[j] != "") {
UsrList.add(m[j]);
}
}
}
else
{
if(!tem)
{
UsrList1.add("Not Applicable");
}
else
{
UsrList1.add("No Users have been added yet");
}
}
usrAdapter1 = new ArrayAdapter<String>(getContext(), android.R.layout.simple_spinner_dropdown_item, UsrList1);
ul.setAdapter(usrAdapter1);
}
}
Spinner,arralist,arrayadapter已在Activity中定义,但在我的OnClick中我无法获得微调器的值,它表示空对象引用。
@Override
public void onClick(View v) {
String tString,yString;
boolean temp;
Bundle bundle = new Bundle();
switch(v.getId()) {
case R.id.btnN:
showToast(ul.getSelectedItem().toString());
我能够在UI上看到微调器数据,它只是在选择我没有得到字符串时。 任何帮助将不胜感激。
答案 0 :(得分:0)
NullPointerException:尝试调用虚方法&#39; java.lang.String java.lang.Object.toString()&#39;在&#34; showToast&#34;
的空对象引用上
与当前所选项目对应的数据,如果没有选择任何内容,则为null。
单击按钮时,没有选择任何内容。所以它在getSelectedItem()
中返回null。在null上调用toString()
并导致空指针引用。
答案 1 :(得分:0)
如果你想从spinner获取值,也许你可以尝试setOnItemSelectedListener而不是onClick。
ul.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) {
String item = String.valueOf(parent.getItemAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
// TODO Auto-generated method stub)
}
});