就像我的标题所说,我正在getActivity()
的{{1}}课程中寻找相当于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();
}
}
};
}
类中使用getParent()
,但它返回一个null对象。
那么如何在ActionBarActivity
类中获取我想要的Activity对象?
答案 0 :(得分:12)
尝试使用nameofactivity.this而不是value="1"
我总是在SelectedPrefix = 1;
活动中使用getActivity()
,而在任何其他类型的getActivity()
中使用。{/ p>
答案 1 :(得分:4)
我使用 MyClass.this ,就完成了。像这样:
AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(EventCreator.this);
eventCreatorSend.execute();
希望能帮助别人!
答案 2 :(得分:0)
最简单的方法是活动变量
// in your fragment
Activity myActivity;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//fragment shouts "i know my father!!!"
myActivity = activity; //
}
现在你的活动实例(父亲)可以在任何地方出现