Невозможно начать деятельность в Android...?
Поскольку я новичок в разработке Android, я столкнулся с проблемой в моем проекте. Код это..
для обработки кода веб-сервиса я вызываю класс webinterface из файла main.java следующим образом.
Main.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
WebServiceInterface webinterface= new WebServiceInterface();
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
getuser = username.getText().toString();
getpass = password.getText().toString();
HashMap<String, Object> map = new HashMap<String,Object>();
map.put("username", getuser);
map.put("password", getpass);
webinterface.sendRequest(map);
}
});
В классе Webinterface я получаю следующие значения карты и преобразовываю их в строку и отправляю в RestClient.class для обработки запроса веб-сервиса.
WebServiceInterface.java
ArrayList<String> ast = new ArrayList<String>();
Collection<Object> strings = map.values();
Iterator iterator = strings.iterator();
while (iterator.hasNext()) {
getuser = (String) iterator.next();
ast.add(getuser);
}
String password = ast.get(0).toString();
String username = ast.get(1).toString();
RestClient client = new RestClient(
"***********************");
client.AddParam("username", username);
client.AddParam("password", password);
try {
client.Execute(RequestMethod.POST);
} catch (Exception e) {
e.printStackTrace();
}
String response = client.getResponse();
/** here getting response & sending that response back to Main.java class**/
Main main = new Main();
main.responseData(responsedata);
здесь после получения метода ответа из класса интерфейса в классе Main.java происходит следующий процесс
Main.java
@Override
public void onCreate(Bundle savedInstanceState) {
System.out.println("response is----^^^^^^^^^^====>>>>>> " + getrespstatus + "_______---->> > " + respdoctorID);
}//end of oncreate...
public void responseData(HashMap<String, Object> responsedata) {
// TODO Auto-generated method stub
System.out.println("response data in main class->>>>>>>> " + responsedata);
Collection<Object> strings = responsedata.values();
Iterator iterator = strings.iterator();
while (iterator.hasNext()) {
getresponse = (String) iterator.next();
ast.add(getresponse);
}
String status = ast.get(0).toString();
try {
JSONObject json = new JSONObject(status);
getrespstatus = json.getString("status");
respdoctorID = json.getString("doctorID");
callmethod(getrespstatus, respdoctorID);
System.out.println("response is----^^^^^^^^^^====>>>>>> " + getrespstatus + "_______---->> > " + respdoctorID);
/* if(getrespstatus == "true")
{
startActivity(new Intent(Main.this,Second.class))
}else
{
//some alert message
}*/
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
здесь, если статус ответа == true, я хочу начать деятельность. но здесь я получаю ошибку как исключение нулевого указателя.. И мое другое сомнение здесь я получаю ответ & doctorID. если я пытаюсь получить доступ к следующим значениям в методе oncreate, он отображается как нулевые значения (просто сказать, что я печатаю значения ответа в журнале, в методе responseData я получаю, если при печати из oncreate получаю нулевые значения) помоги мне с этим...
1 ответ
Вы должны позвонить super
в onCreate
, Я настоятельно рекомендую прочитать эту статью о жизненном цикле деятельности.
Что касается возврата ответа, самым простым способом было бы добавить ваш экземпляр Main в класс WebInterface в качестве ссылки, возможно, в конструкторе.