Как расширить ListActivity, где AppCompatActivity в активности Android
Я хочу использовать Activity extends ListActivity для PullToRefresh.Но я использую CustomActionBar, поэтому использую AppCompatActivity.Как решить эту проблему.Спасибо заранее
public class CustomActionActivity extends ListActivity
public class PullToRefreshActivity extends ListActivity {
private LinkedList<String> mListItems;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pull_to_refresh);
// Set a listener to be invoked when the list should be refreshed.
((PullToRefreshListView) getListView()).setOnRefreshListener(new PullToRefreshListView.OnRefreshListener() {
@Override
public void onRefresh() {
// Do work to refresh the list here.
new GetDataTask().execute();
}
});
mListItems = new LinkedList<String>();
mListItems.addAll(Arrays.asList(mStrings));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mListItems);
setListAdapter(adapter);
}
вместо этого:
public class CustomActionActivity extends AppCompatActivity
2 ответов
Если вы хотите использовать ListView в своем приложении, то напрямую использовать его без расширения ListActivity. Такой
public class PullToRefreshActivity extends AppCompatActivity {
private LinkedList<String> mListItems;
PullToRefreshListView listView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pull_to_refresh);
listView = (PullToRefreshListView) findViewById(R.id.list_view);
// Set a listener to be invoked when the list should be refreshed.
listView.setOnRefreshListener(new PullToRefreshListView.OnRefreshListener() {
@Override
public void onRefresh() {
// Do work to refresh the list here.
new GetDataTask().execute();
}
});
mListItems = new LinkedList<String>();
mListItems.addAll(Arrays.asList(mStrings));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mListItems);
listView.setAdapter(adapter);
}
на Java doucmentation https://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html мы не можем наследовать несколько классов. Поэтому, если вы хотите, functionaloty затем использовать ListView
внутри вашего макета.