如何在 Android Activity 中的 AppCompatActivity 中扩展 ListActivity
Posted
技术标签:
【中文标题】如何在 Android Activity 中的 AppCompatActivity 中扩展 ListActivity【英文标题】:How to extends ListActivity where AppCompatActivity in Android Activity 【发布时间】:2016-03-23 13:06:46 【问题描述】:我想为 PullToRefresh 使用 Activity 扩展 ListActivity。但我使用了 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
【问题讨论】:
很抱歉,我无法理解这个问题。你能澄清一下吗? 在我的活动中,PullToRefresh 无法正常工作,因此我想使用 ListActivity。看到我用 PullToRefreshActivity 编辑了我的帖子。 考虑使用 RecyclerView。这是最新的 api developer.android.com/reference/android/support/v7/widget/… 【参考方案1】:如果你想在你的应用中使用 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);
【讨论】:
【参考方案2】:根据 Java 文档 https://docs.oracle.com/javase/tutorial/java/IandI/multipleinheritance.html,我们不能继承多个类。所以,如果你想要这两种功能,那么在你的布局中使用ListView
。
【讨论】:
以上是关于如何在 Android Activity 中的 AppCompatActivity 中扩展 ListActivity的主要内容,如果未能解决你的问题,请参考以下文章
Android 如何从 Main Activity 中的另一个类调用 Activity 数据类型?