Невозможно расширить AppCompatActivity, так как я уже расширяю ListActivity
Я использую TwitterKit для загрузки списка твитов в упражнении. Я хотел бы добавить собственный ActionBar к моей деятельности. Я не могу найти способ одновременно расширить AppCompatActivity и ListActivity... Есть ли обходные пути или решения для этого? Пожалуйста, смотрите код ниже
public class travel_info extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_travel_info);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setCustomView(R.layout.custom_line_info);
View view = getSupportActionBar().getCustomView();
Twitter.initialize(this);
final UserTimeline userTimeline = new UserTimeline.Builder()
.screenName("TfLTravelAlerts")
.build();
final TweetTimelineListAdapter adapter = new TweetTimelineListAdapter.Builder(this)
.setTimeline(userTimeline)
.build();
setListAdapter(adapter);
}
}
2 ответа
Я не могу найти способ расширить AppCompatActivity и ListActivity одновременно
Если вы хотите использовать ListView в своем приложении, то используйте его напрямую, не расширяя ListActivity. Смотрите здесь
Вы можете продлить только один класс. И реализовать интерфейсы из многих источников.
Продление нескольких классов недоступно.
вы могли бы использовать ListActivity
или же ListView
внутри обычного Activity
, В новейших версиях Android предпочтительным способом отображения элементов в списке является использование так называемого RecyclerView.
Пожалуйста, смотрите связанную документацию. Это довольно хорошо и полезно. Помимо именования конвекции, RecyclerView
дает вам больше гибкости и имеет встроенный шаблон ViewHolder для повторного использования представлений во время прокрутки, что повышает производительность приложения. Перед введением RecyclerView
Вы должны были реализовать шаблон ViewHolder самостоятельно.
Вместо Activity
или же ListActivity
, вы должны использовать AppCompatActivity
и место RecyclerView
внутри него для обратной совместимости со старыми системами и устройствами.