繁体   English   中英

是否可以向Android listactivity添加另一个视图?

[英]Is it possible to add another view to an Android listactivity?

我想在我的列表活动中添加一个等待圈。 我在这篇文章中使用了答案: 加载东西时在ImageView中使用“动画圆”

但是我认为我必须添加等待圈布局的setContentView才能使用findViewById。 问题是我不知道我是否可以在同一活动中两次使用setContentView。

现在,当我尝试它时,出现一个错误,我最常使用setContentView和要使用的listview布局的ID。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listview);}


    public void showCallList() // show call list on screen
{
    getListView().setVisibility(View.GONE);
    findViewById(R.loadingPanel).setVisibility(View.VISIBLE);
    CallListArrayAdapter adapter = new CallListArrayAdapter(this,
            arrayListCalls);
    setListAdapter(adapter);
    findViewById(R.id.loadingPanel).setVisibility(View.GONE);
    getListView().setVisibility(View.VISIBLE);
}

我得到的例外是:

E / AndroidRuntime(4320):由以下原因引起:java.lang.RuntimeException:您的内容必须具有ID属性为“ android.R.id.list”的ListView

您不能再次调用setContentView。 相反,您应该将其他布局添加到还包含ListView的主XML中。 您可以在那里找到它。

实际上,您不需要ListActivity即可拥有ListView。 您也可以将普通的Activity与普通的layout.xml一起使用,并在其中放置<ListView>以及所需的所有其他视图。

代替由getListView()定义的getListView() ,使用普通的findViewById()以及您在layout.xml中提供ListView的ID。

如果您要呈现自己的自定义视图(动画圆),然后将其添加到活动中,则必须使用addContentView(View view,ViewGroup.LayoutParams params),从而向该活动添加一个附加的内容视图。 在活动中任何现有视图之后添加-不删除现有视图。 这些是参数:view要显示的所需内容。 params视图的布局参数。

但是执行此操作的正确方法(当然取决于要加载的数据量)是使用AsyncTask wich,它可以正确轻松地使用UI线程。 此类允许执行后台操作并在UI线程上发布结果,而无需操纵线程和/或处理程序。 异步任务由在后台线程上运行的计算定义,并且其结果发布在UI线程上。 异步任务由3个通用类型(称为Params,Progress和Result)以及4个步骤(称为onPreExecute,doInBackground,onProgressUpdate和onPostExecute)定义。 例如,您可以在onPreExecute方法上调用一个进度对话框(用作等待圈),并在doInBackground方法中列出文件。 祝好运!!!!

是的,这很容易做到。

创建一个布局xml,就像执行普通活动一样,并在此活动中使用android:id=@android:id/list创建一个空的listview。

启动ListActivity时,将ContentView设置为自定义布局。 ListActivity将自动找到ID为android:id/list的listView,并将该listview用于所有与列表相关的功能。

来自ListActivity的相关文本:

ListActivity具有默认布局,该布局由位于屏幕中央的单个全屏列表组成。 但是,如果需要,可以通过使用onCreate()中的setContentView()设置自己的视图布局来自定义屏幕布局。 为此,您自己的视图必须包含ID为“ @android:id / list”(或列表,如果在代码中,则为List)的ListView对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM