当前位置: 首页 > 知识库问答 >
问题:

ListView未显示

谢豪
2023-03-14

我试图在应用程序启动时显示项目的listview。但在应用程序启动时,没有显示listview,只有一个空白屏幕。下面是代码:

MainActivity.java

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }


public static class PlaceholderFragment extends Fragment
{
    ArrayAdapter<String> mForecastAdapter;
    public PlaceholderFragment()
    {}

    @Override
    public View onCreateView(LayoutInflater inflator, ViewGroup v, Bundle savedInstanceState)
    {
        View rootView = inflator.inflate(R.layout.fragment_main, v);

        String[] forecastArray= {
                "Today - Sunny - 88/63",
                "Monday - foggy - 67/20",
                "Tuesday - Sunny - 88/63"
                };

        List<String> weekforecast= new ArrayList<String>(Arrays.asList(forecastArray));

        mForecastAdapter= new ArrayAdapter<String>(
                getActivity(),
                R.layout.list_item_forecast,
                R.id.list_item_forecast_textview,
                weekforecast);

        ListView listview =(ListView)rootView.findViewById(R.id.listview_forecast);
        listview.setAdapter(mForecastAdapter);


        return rootView;
    }


}
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.sunshineapp.MainActivity" 
tools:ignore="MergeRootFrame" />
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="64dp" 
android:paddingRight="64dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
tools:context="com.example.sunshineapp.MainActivity$PlaceholderFragment" >

<ListView
    android:id="@+id/listview_forecast"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     />
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" 
android:id="@+id/list_item_forecast_textview"/>
if(savedInstanceState == null)
    {
    android.app.FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction  =fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.container, new PlaceholderFragment());
    fragmentTransaction.commit();   

    }  

但是现在我在logcat中得到了以下内容:

08-03 11:55:37.365: E/AndroidRuntime(20088): FATAL EXCEPTION: main
08-03 11:55:37.365: E/AndroidRuntime(20088): java.lang.RuntimeException:   Unable to start       activity ComponentInfo{com.example.sunshineapp/com.example.sunshineapp.MainActivity}:     java.lang.IllegalStateException: The specified child already has a parent. You must call     removeView() on the child's parent first.
08-03 11:55:37.365: E/AndroidRuntime(20088):    at     android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
08-03 11:55:37.365: E/AndroidRuntime(20088):    at     android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
08-03 11:55:37.365: E/AndroidRuntime(20088):    at android.app.ActivityThread.access$600    (ActivityThread.java:162)

并且应用程序停止..请帮助!

共有1个答案

岳浩宕
2023-03-14

对我来说,不知何故,简单地更新了适配器:

ListView listview =(ListView)rootView.findViewById(R.id.listview_forecast);
        listview.setAdapter(mForecastAdapter);
        mForecastAdapter.notifyDataSetChanged();

        return rootView;
 类似资料:
  • 此时,我学习了如何使用javafx-fxml应用程序制作程序。我了解了如何在listview上显示listcell。我使用下面的代码。但从代码来看,它无法在listview上显示listcell。当我运行程序时,只显示listview,而不显示listcell。请帮帮我。 Main.java 主要的fxml Student.java ListCell.fxml StudentListViewCel

  • 我试图在片段中填充一个具有自定义布局的listView。但是,当我启动应用程序时,listview的内容没有加载(这是使用数组适配器获得的)。下面是加载listView的代码: 这里是我的CustomAdapter的代码: } 这是列表项布局的xml: 这里是主要布局: 我没有收到任何错误消息,但是当我启动应用程序时,listView中没有显示任何项目,并且永远不会调用我的适配器的getView方

  • 我正在使用Android Studio v3。1.2. 我有一对带有列表视图和按钮的活动。无论ListView中有多少项,按钮都应对齐底部。 在我的主活动中,ListView和按钮在RelativeLayout上完美渲染。我可以添加很多项目到ListView和按钮保持不变。 另一方面,我的JournalAbFragment是一个在表格布局中使用RelativeLayout的片段。该片段由PetDe

  • 问题内容: 我想要一个带有“人”名称的ListView,但是在启动应用程序时,在ListView上,我看到了一些奇怪的字符串而不是(字符串)名称。我认为这是“人”对象的强制问题。我不知道ListView应该是ListView还是ListView。因为当我尝试在listview上设置项目时,使用setItems(ObservableList)可以得到显示在列表上的怪异字符串。.这是代码: MainA

  • 问题内容: 我有一个带有ArrayAdapter的ListView,其中包含带有图像和字符串的行。直到我确定图像的加载速度变慢,这样我才能在显示列表之前无法加载图像,这样效果很好。因此,我开始使用加载图像到单独的线程中AsyncTask。 在开始滚动列表之前,我对结果感到非常满意。加载了错误的图像,看起来好像不是图像稍后出现的问题。如果我尝试对列表进行排序,问题将变得非常严重,并且没有图像在右行。