2015-01-22 2 views
-1

Так я пытаюсь вызвать строку, вызов:Ошибка при казнить, String не будет вызывать в doInbackground

EditText EditTextSearch = (EditText)findViewById(R.id.editText1); 
if(!isEmpty(EditTextSearch)){ 
    Toast.makeText(this, "Getting Information", Toast.LENGTH_LONG).show(); 
    Log.v("checkText =>", EditTextSearch.getText().toString()); 
    getComics getComicInfo = new getComics(EditTextSearch.getText().toString(), 1); 
    getComicInfo.execute(); 
} 

после этого я звоню AsyncTask

class getComics extends AsyncTask<Void, Void, Void>{ 
     private String comicName; 
     private String comicNameForSearch; 
     private int getOptionNumber; 
     String jsonString = ""; 
     String result = ""; 

    getComics(String comicName, int getOptionNumber) 
     { 
     Log.v("Check name A =>", comicName); //show name 

     } 

    //set option for search 
    public void SetOptionNumber(int getOptionNumber){ 
     this.getOptionNumber = getOptionNumber; 

    } 

    public int getOptionNumber(){ 
     return this.getOptionNumber; 
    } 

    //the data that the user searching for 
    public void SetComicName(String comicName){ 
     this.comicName = comicName; 
    } 

    public String GetComicName(){ 
     return this.comicName; 
    } 


/*the request to the API, include fixing space and getting information about the main object, data, later on i'll call 
    the object I got to show the the results array */ 

    @Override 
    protected Void doInBackground(Void... params) {  
     Log.v("is callingB =>", "Yes"); 
     comicNameForSearch = GetComicName(); 
     Log.v("check name=>", comicNameForSearch); // make the app crash 

в любом случае, если я пытаюсь Log.v, приложение аварии, что заставляет меня думать, что DoInBackground не приносит comicName по какой-то причине, угадать его из-за пути выполнения, любые идеи?

редактировать: первый раз собираюсь с API очень жаль, если какими-либо проблемы тупых сообщения об ошибке: Вызванный: java.lang.NullPointerException: Println нуждается сообщением

+0

Показать сообщение об ошибке. – barq

ответ

0

Вы отсутствуете Assinging значения в Constructor так что приводит к в NullPointerException

Изменить этот

getComics(String comicName, int getOptionNumber) 
    { 
    Log.v("Check name A =>", comicName); //show name 
    } 

в

getComics(String comicName, int getOptionNumber) 
    { 
    this.comicName = comicName; 
    this.getOptionNumber = getOptionNumber; 
    Log.v("Check name A =>", comicName); //show name 
    } 
+0

Спасибо, работаю также – Aviv1002

0

Ваше приложение получает исключение, потому что ваши данные в Asynctask являются нулями, которые вы печатаете и передаете в doInBackground.

Изменить Вы AsyncTask к этому:

class getComics extends AsyncTask<Void, Void, Void>{ 
     private String comicName; 
     private String comicNameForSearch; 
     private int getOptionNumber; 
     String jsonString = ""; 
     String result = ""; 

    getComics(String comicName, int getOptionNumber) 
     { 
     this.comicName = comicName; 
     this.getOptionNumber = getOptionNumber; 
     Log.v("Check name A =>", comicName); //show name 

     } 

    //set option for search 
    public void SetOptionNumber(int getOptionNumber){ 
     this.getOptionNumber = getOptionNumber; 

    } 

    public int getOptionNumber(){ 
     return this.getOptionNumber; 
    } 

    //the data that the user searching for 
    public void SetComicName(String comicName){ 
     this.comicName = comicName; 
    } 

    public String GetComicName(){ 
     return this.comicName; 
    } 


/*the request to the API, include fixing space and getting information about the main object, data, later on i'll call 
    the object I got to show the the results array */ 

    @Override 
    protected Void doInBackground(Void... params) {  
     Log.v("is callingB =>", "Yes"); 
     comicNameForSearch = GetComicName(); 
     Log.v("check name=>", comicNameForSearch); // make the app crash 

И Другой способ заключается в вызове метода сеттер вы сделали в своем классе, как это:

getComics getComicInfo = new getComics(EditTextSearch.getText().toString(), 1); 
getComicInfo .SetComicName(EditTextSearch.getText().toString()); 
getComicInfo .SetOptionNumber(1); 
    getComicInfo.execute(); 

 Смежные вопросы

  • Нет связанных вопросов^_^