将 android 文本视图更改为列表视图

Posted

技术标签:

【中文标题】将 android 文本视图更改为列表视图【英文标题】:Changing an android text view to a list view 【发布时间】:2015-10-23 19:54:00 【问题描述】:

我正在使用来自我的内容提供者的文本视图填充:

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.exercises);

     resultView= (TextView) findViewById(R.id.res);

   @Override
    public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) 
        cursor.moveToFirst();

        StringBuilder res=new StringBuilder();

        while (!cursor.isAfterLast()) 
            res.append("\n"+cursor.getString(cursor.getColumnIndex("id"))+ "-"+ cursor.getString(cursor.getColumnIndex("name")));
            cursor.moveToNext();
        
        resultView.setText(res);

我想调整它以在列表视图中显示每个项目。我尝试了以下方法:

public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) 
        cursor.moveToFirst();

        ArrayList<String> listItems = new ArrayList<String>();
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.exercises, listItems);
        ListView mylist=(ListView) findViewById(R.id.res);


        for(int i = 0; i<3; i++)
            String temp= " : " + i;
            listItems.add(temp);
        
        mylist.setAdapter(adapter);
      

这是我的 xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >
    <Button
        android:id="@+id/btnRetrieve"
        android:layout_
        android:layout_
        android:onClick="onClickDisplayNames"
        android:text="Display exercises"
        android:textColor="@color/blue"
        android:textSize="40sp"/>
    <ListView
        android:id="@+id/res"
        android:layout_
        android:layout_>
    </ListView>
</LinearLayout>

我在最后一部分使用虚拟数据来尝试让它作为示例工作。由于某种原因,这不会加载任何东西。创建在文本视图中显示信息的列表视图的最简单方法是什么?

【问题讨论】:

请同时发布您的 xml 布局 这个布局是什么.. R.layout.exercises 【参考方案1】:

您在将任何内容添加到列表之前设置您的适配器。

把你的代码改成这个。

public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) 
        cursor.moveToFirst();

        ArrayList<String> listItems = new ArrayList<String>();
        ListView mylist=(ListView) findViewById(R.id.res);

        for(int i = 0; i<3; i++)
            String temp= " : " + i;
            listItems.add(temp);
        
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.exercises, listItems);
        mylist.setAdapter(adapter);
      

最简单的方法是像这样设置你的适配器。

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, listItems);

【讨论】:

以上是关于将 android 文本视图更改为列表视图的主要内容,如果未能解决你的问题,请参考以下文章

更新列表视图中的单行以显示隐藏的文本视图

列表视图中的编辑文本值在屏幕超时时更改为默认值

如何根据 TextEditor 的文本更改为 SwiftUI 视图设置动画?

文本文件字符串拆分然后将每个元素输出到视图表中

iOS 7:如何在一个视图控制器中将状态栏文本颜色更改为白色,在第二个视图控制器中更改为黑色?

试图用数组文本填充列表视图