Intereting Posts
Как получить указание на то, что пользователь пытается выполнить прокрутку в ViewPager Проблемы с запутанием Proguard после добавления новых приложений для входа в Google для Android Оболочка ADB: Как получить список BroadcastReceivers, который получит BOOT_COMPLETED Intent? RxJava flatMapIterable с одним Декодирование изображений и манипуляции с использованием JNI на Android Начните Android с электронной почты Android: выкладывает простой стек ящиков? Выровнять по левому краю TextView к тексту внутри EditText? Android: вертикальный RatingBar? Android TV: несфокусированное изображение содержит черный прозрачный фон? Android: Захват документа и сканирование с помощью камеры Создание целочисленного массива идентификаторов ресурсов Почему Eclipse не видит мой телефон Samsung Galaxy, хотя я могу передавать файлы с помощью буквы диска? Используйте метод .GetMapAsync вместо .getMap с сервисами Google Play (Xamarin) Шаблоны на матрице чисел 3×3

Android-эквивалент getActivity () из / в ActionBarActivity

Как и в моем названии, я ищу эквивалент getActivity() в своем классе ActionBarActivity в своем Android project .

Я хочу передать параметр Activity в AsyncTask объявления 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() из класса ActionBarActivity , но возвращает нулевой объект. Итак, как получить объект Activity, который я хочу в классе ActionBarActivity ?

Попробуйте использовать название. Это вместо getActivity()

Я всегда использую getActivity() в действиях Fragments и это в любом другом виде Activity .

Вот черт ! Я только что нашел решение сразу после отправки моего запроса.

Я использую MyClass.this , и все сделано. Как это :

  AsyncTask<Void,Void,Boolean> eventCreatorSend = new SendEvents(EventCreator.this); eventCreatorSend.execute(); 

Надеюсь, это поможет кому-то!

Самый простой способ – переменная Activity

 // in your fragment Activity myActivity; @Override public void onAttach(Activity activity) { super.onAttach(activity); //fragment shouts "i know my father!!!" myActivity = activity; // } 

Теперь ваш экземпляр активности (отец) можно представить в любом месте