这也可能对某人有帮助:由于 AsyncTask 是一个单独的类,如何将 OnPostExecute() 的结果获取到主活动? https://stackoverflow.com/questions/12575068/how-to-get-the-result-of-onpostexecute-to-main-activity-because-asynctask-is-a
我正在从另一个类中调用方法onPostExecute()
.
我假设onPostExecute()
之后被调用doInBackground(String... params)
根据文档和调试器,这是正确的。
调用方法:
protected void onPostExecute(String result) {
CreateHangOut crtHO = new CreateHangOut();
crtHO.createHangOut(result);
}
调用的方法的一部分,导致 NPE(方法的第一行):
public void createHangOut(String location) {
String city=autocompleteTV.getText().toString();
}
自动完成TextView
(autocompleteTV
) 在活动的 onCreate 时初始化。
这是我的调用方式AsyncTask
:
create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new
HTTPRequest().execute((autocompleteTV.getText()).toString());
}
});
名为 onCreate 的方法(单击按钮的活动):
private void initialize() {
gAPI= new GoogleAPIAutocomplete();
autocompleteTV = (AutoCompleteTextView)
findViewById(R.id.crtHOLocOptionsTV);
setUpAutocomplete();
create = (Button) findViewById(R.id.crtHOCreateBtn);
name =(EditText) findViewById(R.id.crtHONameET);
create.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new
HTTPRequest().execute((autocompleteTV.getText()).toString());
}
});
}