Android 添加到ListView
我正在尝试将列表视图添加到我的活动中。以下是假设发生的情况: 用户单击一个按钮并使用异步任务从internet获取数据。然后应将该数据添加到列表视图中。数据来自联机表,因此如果表中有10行,那么Listview中应该有10个值Android 添加到ListView,android,android-listview,Android,Android Listview,我正在尝试将列表视图添加到我的活动中。以下是假设发生的情况: 用户单击一个按钮并使用异步任务从internet获取数据。然后应将该数据添加到列表视图中。数据来自联机表,因此如果表中有10行,那么Listview中应该有10个值 但是我有一些问题。 首先,是否可以将listview添加到预先存在的布局中并动态更新 列表视图是否意味着不能使用setContentView()方法而必须使用setListAdapter 如果布局上已经有两个按钮,是否可以将列表视图添加到它们下面,并仍然使用setCont
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView( R.layout.new_sightings );
ListView list = getListView();
list.setAdapter( new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, values ) );
list.setTextFilterEnabled( true );
}
@覆盖
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.new_目击);
ListView list=getListView();
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_列表_项_1,值));
list.setTextFilterEnabled(true);
}
XML布局
?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation = "vertical">
<TableLayout
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
>
<TableRow
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:layout_weight = "1"
>
<TextView
android:id = "@+id/txtTitle"
android:layout_width = "wrap_content"
android:layout_height = "fill_parent"
android:layout_weight = "1"
android:gravity = "center"
android:text = "ISS Predictions"
android:textStyle="bold"
android:textColor = "#FFFFFF"
/>
<Button
android:id="@+id/reloadTen"
android:layout_height="wrap_content"
android:layout_width ="fill_parent"
android:layout_gravity = "right"
android:layout_weight = "1"
android:text = "Reload"
android:textColor = "#FFFFFF"
android:textStyle = "bold"
android:background = "#000000"
/>
</TableRow>
</TableLayout>
<ListView
android:id = "@+id/android:list"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "15dp"
android:textStyle = "bold"
/>
</LinearLayout>
?xml version=“1.0”encoding=“utf-8”>
1)是的,您可以在布局中使用列表视图
,并更新列表视图
显示的数据。通常,您会创建一个继承自的类,以弥合基础数据和为ListView
生成视图之间的差距
要更新显示的数据时,请在适配器上使用和
2) 不可以。只有当您的活动继承自ListActivity
并且ListView
元素的id为@android:id/list
时,才调用setListAdapter()
。以下是此类元素的一个示例:
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
您仍然可以使用setContentView()
来传递所需的XML布局以供使用
3) 是的,基于上述原因 1)是的,您可以在布局中使用列表视图
,并更新列表视图
显示的数据。通常,您会创建一个继承自的类,以弥合基础数据和为ListView
生成视图之间的差距
要更新显示的数据时,请在适配器上使用和
2) 不可以。只有当您的活动继承自ListActivity
并且ListView
元素的id为@android:id/list
时,才调用setListAdapter()
。以下是此类元素的一个示例:
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
您仍然可以使用setContentView()
来传递所需的XML布局以供使用
3) 是的,基于上述原因 您可以创建ListView作为任何XML布局的一部分。您不需要扩展ListActivity(我认为这是您的想法来源),但它可以提供帮助 如果不扩展ListActivity,可以将ContentView设置为已创建(并包含ListView)的任何布局的ID 1) 是的,您可以将listview添加到预先存在的布局中,可以是静态的,也可以是动态的(通过LayoutInput或new listview(…)) 2) 您可以使用setContentView设置现有布局,无论它是否包含listview。如果它包含一个现有的listview,您需要说findViewById(R.id.myListLayoutId),并确保包含在XML中 3) 通过指定要在其中添加myExistingView.addView(listview,index)的索引,可以将listview添加到现有布局中,无论是在已经存在的布局之前还是之后
在任何情况下,您都需要在listview上设置一个适配器(无论您是如何创建/添加的),该适配器将包含要填充的数据。只要通过调用adapter.notifyDataSetChanged()通知适配器其数据集已更改,就可以随时向适配器添加数据。这将导致更新其适配器的listview。您可以将listview创建为任何XML布局的一部分。您不需要扩展ListActivity(我认为这是您的想法来源),但它可以提供帮助 如果不扩展ListActivity,可以将ContentView设置为已创建(并包含ListView)的任何布局的ID 1) 是的,您可以将listview添加到预先存在的布局中,可以是静态的,也可以是动态的(通过LayoutInput或new listview(…)) 2) 您可以使用setContentView设置现有布局,无论它是否包含listview。如果它包含一个现有的listview,您需要说findViewById(R.id.myListLayoutId),并确保包含在XML中 3) 通过指定要在其中添加myExistingView.addView(listview,index)的索引,可以将listview添加到现有布局中,无论是在已经存在的布局之前还是之后
在任何情况下,您都需要在listview上设置一个适配器(无论您是如何创建/添加的),该适配器将包含要填充的数据。只要通过调用adapter.notifyDataSetChanged()通知适配器其数据集已更改,就可以随时向适配器添加数据。这将导致更新其适配器的listview。我喜欢上面的两个答案,但需要选择一个,以便这一个在代码中得到它。谢谢,我还添加了我的代码,以防其他人遇到相同的问题。我喜欢上面的两个答案,但需要选择一个,这样这一个就可以得到代码。谢谢,我也添加了我的代码,以防其他人遇到同样的问题