我有两个活动(Activity1
和Activity2
)和一个的AsyncTask(AsyncTask1
)如何从的AsyncTask
Activity1
管理活动有一个按钮,在点击控制权交给Activity2
,Activity2
有AsyncTask
并在该任务的onPostExecute()
我想处理Activity1
中的TextView
。
实施例:
活性1
public class Activity1 extends RoboSherlockActivity {
@Inject (R.id.name) EditText name;
@Inject (R.id.mybutton) Button button;
public void onCreate (Bundle savedInstanceState) {
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent activity2 = new Intent(context, Activity2.class);
startActivity(activity2);
}
});
....
}
}
活性2
public class Activity2 extends RoboSherlockActivity {
@InjectView (R.id.name) EditText secret;
....
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("Save")
return true;
}
...
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getTitle().toString().equalsIgnoreCase("Save")) {
new AsyncTask1(this, secret.getText().toString()).execute();
}
return true;
}
}
AsyncTask1
public class AsyncTask1 extends RoboAsyncTask<String> {
Activity2 activity;
String secret;
public AsyncTask1 (Activity2 activity, String secret) {
this.activity = activity;
this.secret = secret;
}
public String call() throws Exception {
//call the server here
return "";
}
protected void onSuccess(String result) {
activity.finis();
//HERE I WANT TO SET THE NAME: name.setText(result); //How can I do this??
}
}
问题
如何在AsyncTask的onSuccess
中设置名称?