2011-01-18 3 views

ответ

30

getApplicationContext() может получить значение контекста

+0

Это возвращает контекст приложения, а не текущий контекст, оба разные. –

22

Вы можете получить контекст несколько способов:

активности, используя Your_Activity_Name.this

Применения, используя getApplicationContext()

К Просмотр, используя Your_View.getContext()

Единственный, ot рекомендует использовать getBaseContext(). Если вам нужно что-то универсальное, у вас есть статическая переменная общего назначения в вашем основном действии и назначьте контекст приложения для него, когда начнется ваше приложение. Таким образом, вы всегда можете позвонить по телефону Your_Activity.your_context_variable

2

Помимо правильных предыдущих ответов, вы можете подумать о реорганизации своего кода, если вы достигли точки, где вам нужно получить доступ к «вашему» контексту из вспомогательного действия. Когда вы создаете вспомогательную активность (то есть: startActivityForResult), вы действительно ожидаете результата, а не действия в активности вызывающего абонента. Затем, когда суб-активность завершена (и у вас есть результат ее расчетов), вы можете получить доступ к своему контексту надлежащим образом. Это просто не кажется прекрасным, что субактивность осознает своего создателя, не говоря уже о взаимодействии с ним.

0

Здесь мы берем переменную контекст:

private Context acontext; 

Сделать конструктор адаптера взять другой вход, как:

public Adapter_order_cancel(Context context,String[] myDataset, String[] job_id, String[] category, String[] name, String[] address) { 
     mDataset = myDataset; 
     _job_id = job_id; 
     _category = category; 
     _name = name; 
     acontext = context; 
    } 

Это щелчок слушателем, в котором мы использовали контекст:

v.setOnClickListener(new View.OnClickListener() { 

       @Override public void onClick(View v) { 
        Toast.makeText(itemView.getContext(), "Position: " + Integer.toString(getAdapterPosition()), Toast.LENGTH_LONG).show(); 
        acontext.startActivity(new Intent(acontext, OrderDetailPage.class)); 

       } 
      }); 
Смежные вопросы