tostring java 空,java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.lang.String java.lang.Object.toSt...

Can someone help me to check what's wrong with my code ? I have 4 spinnerand their value has been inserted to SQLite.Now I want to retrieve the item out to another spinner which is in Update.java but get java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

I have checked each single step but still cannot figure out the problem.

Update.java

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

dbHelper = new MyDatabaseHelper(this);

setContentView(R.layout.updatepage);

final String name = getIntent().getExtras().getString("name1");

final String date=getIntent().getExtras().getString("date1");

final String ID = getIntent().getExtras().getString("ID");

RetrievePage(name,date,ID);

}

public void addProject1(String c)

{

project1=(Spinner)findViewById(R.id.spinner8);

String[] arr = new String[]{"Pro-XXX-XXX","TRN-XXX-XXX","SRV-XXX-XXX","PRO-REE-BERGARDING","PRO-SKM-SSS","PRO-SKM-DI","PRO-SKM-PACKING","PRO-SIE-AVAGO_S110",

"PRO-SIE-BIOCON","PRO-BCM-T13/T17","TRIN-IN_HOUSE","TRIN-EXTERNAL","SRIV-SIE-LEMONGRASS","SRV-PW-SIMOCODE","SRV-REE-SIMOCODE","PRO-SKM-D5","PRO-SKM-DRIOU","PRO-BKI-DESMET",

"PRO-BKI-INFINEON","PRO-INH-ANDROID","PRO-BCM-S120","PRO-GAW-OP"};

List list = new ArrayList();

String project11 = c;

list.add(project11);

for(String s:arr){

if(!list.contains(s)){

list.add(s);

}

}

ArrayAdapter adapter = new ArrayAdapter(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

project1.setAdapter(adapter);

}

public void addProject2(String d)

{

project2=(Spinner)findViewById(R.id.spinner9);

String[] arr = new String[]{"Pro-XXX-XXX","TRN-XXX-XXX","SRV-XXX-XXX","PRO-REE-BERGARDING","PRO-SKM-SSS","PRO-SKM-DI","PRO-SKM-PACKING","PRO-SIE-AVAGO_S110",

"PRO-SIE-BIOCON","PRO-BCM-T13/T17","TRIN-IN_HOUSE","TRIN-EXTERNAL","SRIV-SIE-LEMONGRASS","SRV-PW-SIMOCODE","SRV-REE-SIMOCODE","PRO-SKM-D5","PRO-SKM-DRIOU","PRO-BKI-DESMET",

"PRO-BKI-INFINEON","PRO-INH-ANDROID","PRO-BCM-S120","PRO-GAW-OP"};

List list = new ArrayList();

String project22 = d;

list.add(project22);

for(String s:arr){

if(!list.contains(s)){

list.add(s);

}

}

ArrayAdapter adapter = new ArrayAdapter(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

project2.setAdapter(adapter);

}

public void addProject3(String e)

{

project3=(Spinner)findViewById(R.id.spinner13);

String[] arr = new String[]{"Pro-XXX-XXX","TRN-XXX-XXX","SRV-XXX-XXX","PRO-REE-BERGARDING","PRO-SKM-SSS","PRO-SKM-DI","PRO-SKM-PACKING","PRO-SIE-AVAGO_S110",

"PRO-SIE-BIOCON","PRO-BCM-T13/T17","TRIN-IN_HOUSE","TRIN-EXTERNAL","SRIV-SIE-LEMONGRASS","SRV-PW-SIMOCODE","SRV-REE-SIMOCODE","PRO-SKM-D5","PRO-SKM-DRIOU","PRO-BKI-DESMET",

"PRO-BKI-INFINEON","PRO-INH-ANDROID","PRO-BCM-S120","PRO-GAW-OP"};

List list = new ArrayList();

String project33 = e;

list.add(project33);

for(String s:arr){

if(!list.contains(s)){

list.add(s);

}

}

ArrayAdapter adapter = new ArrayAdapter(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

project3.setAdapter(adapter);

}

public void addProject4(String f)

{

project4=(Spinner)findViewById(R.id.spinner14);

String[] arr = new String[]{"Pro-XXX-XXX","TRN-XXX-XXX","SRV-XXX-XXX","PRO-REE-BERGARDING","PRO-SKM-SSS","PRO-SKM-DI","PRO-SKM-PACKING","PRO-SIE-AVAGO_S110",

"PRO-SIE-BIOCON","PRO-BCM-T13/T17","TRIN-IN_HOUSE","TRIN-EXTERNAL","SRIV-SIE-LEMONGRASS","SRV-PW-SIMOCODE","SRV-REE-SIMOCODE","PRO-SKM-D5","PRO-SKM-DRIOU","PRO-BKI-DESMET",

"PRO-BKI-INFINEON","PRO-INH-ANDROID","PRO-BCM-S120","PRO-GAW-OP"};

List list = new ArrayList();

String project44 = f;

list.add(project44);

for(String s:arr){

if(!list.contains(s)){

list.add(s);

}

}

ArrayAdapter adapter = new ArrayAdapter(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

project4.setAdapter(adapter);

}

public void RetrievePage(String name,String date, String id) {

final String name2 = name;

final String date2=date;

final String id2 = id;

final EditText name3 = (EditText) findViewById(R.id.editText9);

final EditText date3 = (EditText) findViewById(R.id.editText12);

final EditText per1=(EditText) findViewById(R.id.editText20);

final EditText per2=(EditText) findViewById(R.id.editText24);

final EditText per3=(EditText) findViewById(R.id.editText28);

final EditText per4=(EditText) findViewById(R.id.editText32);

database = dbHelper.getWritableDatabase();

c = database.rawQuery("SELECT i.Weather, i.Status,w.Subcontractors, w.NumberOfPerson, w.NumberOfHours, wd.Project, wd.WorkDescription, wd.Per, wd.TimeIn, wd.TimeOut FROM Information i LEFT JOIN WorkForce w ON w.TInfo_id = i._id LEFT JOIN WorkDetails wd ON wd.Twf_id=w._id WHERE i.Name = ? AND i._id= ? ",

new String[]{String.valueOf(name2),String.valueOf(id2)}, null);

if (c != null) {

while (c.moveToNext()) {

Details WD = new Details();

String

Weather = c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Weather));

String Project11=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));

String Project22=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));

String

Project33=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));

String Project44=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Project));

String Per1=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Per));

String Per2=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Per));

String Per3=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Per));

String Per4=c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Per));

addProject1(Project11);

addProject2(Project22);

addProject3(Project33);

addProject4(Project44);

addWeather(Weather);

WD.setProject(Project11);

WD.setProject(Project22);

WD.setProject(Project33);

WD.setProject(Project44);

WD.setPer(Per1);

WD.setPer(Per2);

WD.setPer(Per3);

WD.setPer(Per4);

per1.setText(Per1);

per2.setText(Per2);

per3.setText(Per3);

per4.setText(Per4);

}

}

c.close();

}

Error LogCat

Process: com.example.project.project, PID: 2364

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference

at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401)

at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369)

at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:194)

at android.widget.Spinner.onMeasure(Spinner.java:580)

at android.support.v7.widget.AppCompatSpinner.onMeasure(AppCompatSpinner.java:410)

at android.view.View.measure(View.java:18788)

at android.view.ViewGroup.measureChild(ViewGroup.java:5922)

at android.view.ViewGroup.measureChildren(ViewGroup.java:5899)

at android.widget.AbsoluteLayout.onMeasure(AbsoluteLayout.java:66)

I have one activity which has one spinner and the code below works fine to me.

public void addWeather(String a) {

weather3 = (Spinner) findViewById(R.id.spinner5);

String[] arr = new String[]{"Sunny","Cloudy","Rainy","Thunderstorm"};

List list = new ArrayList();

String weather = a;

list.add(weather);

for(String s:arr){

if(!list.contains(s)){

list.add(s);

}

}

ArrayAdapter adapter = new ArrayAdapter(UpdatePage.this, android.R.layout.simple_spinner_dropdown_item, list);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

weather3.setAdapter(adapter);

}

解决方案

The parameter in one of addProject* method is null. As you can see in the snippet from ArrayAdapter.createViewFromResource:

T item = getItem(position);

if (item instanceof CharSequence) {

text.setText((CharSequence)item);

} else {

text.setText(item.toString());

}

...the check for instanceof Charsequence, which return false if T is not a CharSequence or if T is null. Since your Adapter is of type String we can exclude the first case. So one of the String in your collection is null.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值