#android
#Android
Вопрос:
Я создал пользовательский адаптер для представления списка. В конструкторе адаптера я делаю следующее:
public CustomListAdapter(Context context, int textViewResourceId,
ArrayList<CatalogueItemListData> items,int width) {
super(context, textViewResourceId, items);
this.context =context;
mInflater = LayoutInflater.from(context);
}
В моем классе activity я вызываю адаптер, как показано ниже:
this.m_adapter = new CustomListAdapter(this,
android.R.layout.simple_list_item_1, m_orders,displayMetrics.widthPixels);
listView.setAdapter(this.m_adapter);
и я получаю результат, как на изображении ниже:
Теперь, когда я меняю конструктор моего адаптера, как показано ниже:
public CustomListAdapter(Activity activity, int textViewResourceId,
ArrayList<CatalogueItemListData> items,int width) {
super(activity.getApplicationContext(), textViewResourceId, items);
this.context =activity.getApplicationContext();
mInflater = LayoutInflater.from(context);
}
Я получаю следующий вывод:
Может кто-нибудь любезно сказать мне, что может быть возможной причиной разницы в выходных данных? Заранее спасибо.
Комментарии:
1. ну, activity — это сам контекст, и он может отличаться от контекста вашего приложения. но почему это отличается от вашей причины… Не знаю.
Ответ №1:
Я бы сказал, что вы применили другую тему к вашей конкретной деятельности, а затем ко всему приложению. Это может привести к различию в стилях в зависимости от используемого контекста. Я не уверен, что это то, что происходит, но это имело бы смысл.
Комментарии:
1. Привет, я не использую какую-либо тему в своем приложении и не делаю изменений в отношении этого действия.
Ответ №2:
В контексте вашего приложения будет использоваться ранее определенная тема (или тема по умолчанию), в то время как контекст вашей активности не будет, если вы не вызовете его явно.
Надеюсь, это поможет!
Комментарии:
1. Привет, не могли бы вы любезно сказать мне, что «где в контексте вашей активности не будет, если вы не вызовете его явно». имею в виду?
2. Итак, правильным способом было бы вызвать activity.getApplicationContext() ?
3. Либо это нормально, просто имейте в виду, что getApplicationContext унаследует тему, установленную в вашем Android-манифесте (или тему по умолчанию).