MrL*_*ond 7 android android-asynctask android-activity android-actionbaractivity
就像我的标题所说的那样,我正在寻找getActivity()我ActionBarActivity班上相当于我的课程Android project.
我想Activity在AsyncTask声明对象中传递一个参数,因为我Activity在自定义AsyncTask扩展类中使用了一个对象
这是我项目的一个示例最简单的代码
public class EventCreator extends ActionBarActivity {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_even_creator);
View v = getLayoutInflater().inflate(R.layout.activity_even_creator,null);
this.context = this.getBaseContext();
final Button createButton = (Button)findViewById(R.id.createEventButton);
createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(/* here need activity object */);
eventCreatorSend.execute();
}
});
}
class SendEvents extends AsyncTask<Void,Void,Boolean> {
public Activity act;
SendEvents(Activity a) {
this.act = a;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.VISIBLE);
}
@Override
protected Boolean doInBackground(Void... params) {
SystemClock.sleep(5000);
return true;
}
@Override
protected void onPostExecute(Boolean params) {
if (params){
((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.GONE);
act.finish();
}
else {
((LinearLayout)act.findViewById(R.id.layout_loader_create_event)).setVisibility(View.VISIBLE);
Toast.makeText(act,"Fail to send event",Toast.LENGTH_SHORT).show();
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
在一段时间内,我想getParent()从ActionBarActivity类中使用,但它返回一个null对象.那么如何在ActionBarActivity课堂上获得我想要的Activity对象?
| 归档时间: |
|
| 查看次数: |
7123 次 |
| 最近记录: |