【问题标题】:Changing an android text view to a list view将 android 文本视图更改为列表视图
【发布时间】: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_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <Button
        android:id="@+id/btnRetrieve"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="onClickDisplayNames"
        android:text="Display exercises"
        android:textColor="@color/blue"
        android:textSize="40sp"/>
    <ListView
        android:id="@+id/res"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </ListView>
</LinearLayout>

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

【问题讨论】:

  • 请同时发布您的 xml 布局
  • 这个布局是什么.. R.layout.exercises

标签: android android-listview textview android-adapter


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2016-05-04
    • 2011-01-22
    相关资源
    最近更新 更多