AdapterView不支持addView(View)

我开始在android开发中,我在标题上遇到了这个错误。

这是我的Contacts.java

package us.inevent.toot; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBarActivity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class Contacts extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contacts); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new ContactListFragment()).commit(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.contacts, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class ContactListFragment extends Fragment { private ViewGroup listContacts; public ContactListFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_contacts, container, false); listContacts = (ViewGroup) rootView.findViewById(R.id.listContacts); TextView aux = new TextView(getActivity()); aux.setText("Hello World!"); listContacts.addView(aux); return rootView; } } } 

在我的ContactListFragmentonCreateView()方法中,我正在创建一个带有“Hello World”作为文本的TextView

然后,我正在尝试将该视图添加到我的ViewGroup listContacts。

这是我的fragment_contacts.xml

     

我究竟做错了什么?

谢谢。

您正在尝试将其设置为ListView 。 那不行。 尝试将其设置为它的父级。 有类似的东西

 listContacts.getParent().addView(aux); 

评论后编辑

要将项添加到ListView您需要将其添加到用于填充ListView任何列表中,并在其上调用setAdapter()或在Adapter上调用setAdapter()

您不会向ListView添加项目。 您将项添加到Adapter并在ListView上设置Adapter

我建议你阅读本教程

并彻底阅读文档。

列表显示

适配器

来自文档

Adapter对象充当AdapterView与该视图的基础数据之间的桥梁。 适配器提供对数据项的访问。 适配器还负责为数据集中的每个项目创建一个View。

你的ListView是这里的AdapterView (它可能是一个Spinner或其他类似的东西)

使用线性布局而不是列表视图。

将列表视图放在线性布局中,然后在线性列表中添加任何视图,不会给出错误

 < ?xml version="1.0" encoding="utf-8"?>   < ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.android. parteek.contentprovider.Main2Activity">