- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我希望下面的类显示一些 TextView /按钮/微调器,以及一个包含已解析数据的 ListView。然而,listview/adapter/addview 造成了一些麻烦。这是我遇到的错误:
java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView
我感觉它与我的 xml 文件有关,但我不太确定。这是我的代码:
public class StatisticsScreen extends ListActivity{
private List<Message> messages;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.statisticsscreen);
loadFeed();
//other textviews and listeners added
}
private void loadFeed() {
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
List<String> titles = new ArrayList<String>(messages.size());
for (Message msg : messages){
titles.add(msg.getTitle());
}
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, R.layout.xmldatarow,titles);
this.setListAdapter(adapter);
} catch (Throwable t){
Log.e("AndroidNews",t.getMessage(),t);
}
}
我的统计屏幕 xml:
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/statsviewlayout"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/black">
//other layouts/textviews/buttons added
<include layout="@layout/xmllayout" android:id="@+id/xmllist" />
</LinearLayout>
</ListView>
xml布局xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView android:id="@+id/xmllist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
xmldatarow 是一个简单的 textView。
编辑:
好吧,我更新了一些文件,但我收到运行时异常错误:
Your content must have a ListView whose attribute is 'android.R.id.list'
这是更新后的文件:
类别:
setContentView(R.layout.statisticsscreen);
loadFeed();
getListView().addHeaderView(View.inflate(this, R.layout.xmllayout, null));
private void loadFeed() {
try{
BaseFeedParser parser = new BaseFeedParser();
messages = parser.parse();
List<String> titles = new ArrayList<String>(messages.size());
for (Message msg : messages){
titles.add(msg.getDate());
}
ArrayAdapter<String> adapter =
new ArrayAdapter<String>(this, R.layout.xmldatarow,titles);
this.setListAdapter(adapter);
} catch (Throwable t){
Log.e("AndroidNews",t.getMessage(),t);
}
}
我的 statsscreenlayout 仍然有所有带有 TextView 等的线性布局,我从中删除了这个:
<include layout="@layout/xmllayout" android:id="@+id/xmllist" />
然后我的其他两个布局是一个简单的 textview(xmldatarow) 和一个 listview(xmllayout)。所以澄清一下,我的统计屏幕布局中没有任何 ListView 或任何“包含”。
有什么建议吗?谢谢
最佳答案
您不能像那样将 View 直接扩展到 ListView 中。我认为您可能正在寻找 ListView
的 addHeaderView
或 addFooterView
方法。确保在调用 setListAdapter
之前调用它们。
编辑:完整说明:假设您希望将 statsviewlayout
放在列表的顶部:不要将 LinearLayout
直接放在 ListView
元素(ListViews
不应有子元素)。将它放在一个单独的 xml 文件中(例如,statsview.xml
)并在您的 onCreate 中执行如下操作:
getListView().addHeaderView(View.inflate(this, R.layout.statsview.xml, null));
关于android - AdapterView 和 addView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009751/
我需要在一个循环中添加很多 View ,而这个 fragment 就是这样做的,应用程序还将有一个抽屉导航和操作栏,用户可以在其中执行操作。 所以我希望这个过程不会 a) 通过阻止用户来减慢应用程序,
以下是我的代码。我正在尝试向我已经创建的 LinearLayout *activity_dynamic* 添加一个 View public void onClick(View v) {
我是 android 应用程序开发的新手,我遇到了一个问题: 当按下我的 DrawerLayout 上的按钮时,我正在向我的主 LinearLayout 添加内容: private void swit
我正在尝试将 TextView 动态添加到线性布局,假设 TextView 是 boo,线性布局是 foo。 TextView boo = new TextView(this) LinearLayou
在 Android 中,当我将像 ImageView 这样的 View 对象添加到 FrameLayout View ,然后立即尝试调用 layout() 方法来重新定位添加的 View 对象时,它不
尝试通过添加新 Activity 和移动到该 Activity 的按钮来编辑 Android 教程应用程序,但在按下“发送”按钮后,我不断收到运行时异常错误(应用程序崩溃)。研究过许多类似的问题,但对
这是 LinearLayout 中的标准 addView。 table.addView(child); 但我需要用这种方式在我的布局中添加 View 请问有可能吗??! 最佳答
我需要用自己的自定义工具栏替换普通的工具栏。我使用以下代码,但没有显示任何内容: 我的MainActivity: public class MainActivity extends AppCo
我尝试在 FrameLayout fragment 中查看相机。但是,我得到了 java.lang.NullPointerException。这是 fragment 代码: public class
我最近开始为 android 开发,但在尝试向布局添加多个 View 时遇到了困难。它实际上适用于第一次触摸,但之后它什么都不做。日志虽然继续工作并显示已检测到触摸并显示事件的位置。我有以下代码 pu
正如您在图片中看到的,我可以选择 View 并使用“_root.addView(dragIcon);”添加 3 个 ImageView。 我的问题是 View 是一个简单 View 而不是 ViewG
我需要有关 ViewFlipper 的简单实现方面的帮助。当我在 Activity 的 onCreate 中膨胀 subview “ws.addView(childView)”时,脚蹼工作得很好。 当
我正在尝试使用 Framework7 作为我的 UI 创建一个 Cordova 应用程序。我正在尝试使用内联页面作为布局架构,但在设置我的项目时,我在控制台中收到以下错误: 未捕获的类型错误:myAp
我想通过 layoutInflater 将一个布局放入另一个布局。 这是 main_layout.xml 文件: 这是 vitrin_layout.xml 文件: 最后是我主
这是我的 MainActivity XML 文件: 这是 .java 文件: @Override protected void onCreate(Bundle savedInstanceSt
当我尝试运行以下代码时出现错误。模拟器给我这个错误信息,然后应用程序强制关闭:应用程序意外停止。 出了什么问题? import edu.chl.dat255.bluebanana.R; import
我对 ViewGroup.addView() 方法有疑问。我使用此代码向我的布局添加新 View : TalbeLayout parent = (TableLayout)findViewById(R.
我想制作一个 ScrollView 中的项目列表。所以我将 LinearLayout 放在 Scrollview 中。linearLayout 中已经有一个项目:添加项目的 View 。我希望该项目始
我在使用 LinearLayout 的 addView 方法时遇到问题。我不知道为什么,但如果我添加三个 View ,则只显示第一个。这是代码: Comment[] comments = posts[
我无法理解 ViewGroup 的 addView(View child, int index) 中 index 的功能。index 有什么用? index 可以是负值吗?它会影响 layout 或显
我是一名优秀的程序员,十分优秀!