首先拿到ListView,然后添加适配器,setAdapter参数是一个ListAdapter接口,若直接实现接口, 将有很多不必要的方法,一般这种情况都有一个对应的实现了相应接口的适配器类,BaseXXX、 DefaultXXX、SimpleXXX等。 在BaseAdapter的getView方法中,需要提供一个供显示内容的view,在此处应和scrollView 做对比,若ScrollView中要显示50条TextView的数据,那么就有50个TextView的对象在内存中, 这种情况下若数据很多,多至上万,是很消耗内存的,而此处为ListView添加适配器的形式,在指定了 view的模板后,TextView的数量只是保证能充满整个显示屏,也就是说在显示屏上需要显示新的 TextView的时候才会调用getView()方法,而旧的TextView一旦从屏幕上移除了,就没有任何对象 引用它了,等着呗垃圾回收器处理。这样内存中就只保证能充满显示屏的TextView对象,大大的节省了内存
public class MainActivity extends Activity { private ListView listView; private int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listView); listView.setAdapter(new MyAdapter()); } private class MyAdapter extends BaseAdapter{ @Override public int getCount() { return 50; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView tv = new TextView(getApplicationContext()); tv.setTextSize(20); tv.setBackgroundColor(Color.BLUE); tv.setText(i++ + ""); return tv; } } }
<LinearLayout 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:orientation="vertical" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
相关推荐
这篇博客“Android之ListView<2>”可能深入探讨了ListView的高级用法和优化技巧,尽管描述部分为空,我们可以根据标签“源码”和“工具”推测内容会涉及到ListView的内部实现原理和实际开发中的实用技巧。...
这篇博客“Android之ListView<3>ArrayAdapter,SimpleAdapter”主要探讨了两种常用的适配器:ArrayAdapter和SimpleAdapter,它们是连接数据源与ListView的关键组件。 ArrayAdapter是Android SDK内建的一种适配器,...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在显示数据集合时十分有用。然而,当ListView的子项(item)宽度超过屏幕宽度时,如何实现自动换行就成了一个...
在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下...
在Android应用开发中,`ListView`是显示大量数据集的常用组件之一,尤其在需要展示列表项时非常实用。然而,在数据集更新时,如何实现实时或动态地刷新`ListView`,是开发者经常面临的问题。本文将围绕“Android_...
List<String> items = Arrays.asList("项1", "项2", "项3"); // 示例数据 MyAdapter adapter = new MyAdapter(this, items); listView.setAdapter(adapter); ``` ### 5. 实现界面跳转 当用户点击ListView的某一项...
List<String> itemList = new ArrayList<>(); // 初始化itemList CustomDialog dialog = new CustomDialog(this, itemList); dialog.show(); ``` 以上就是关于“android dialog嵌套ListView”实现的基本步骤,包括...
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, listData) { @Override public View getView(int position, View convertView, ViewGroup parent) {...
ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>( MainActivity.this,android.R.layout.simple_list_item_1,msWordS ); ListView listView = findViewById(R.id.Main_ListView); listView....
return listView.getLastVisiblePosition() >= (listView.getCount() - 1); } // 加载下一页数据的逻辑,假设loadNextPage()是异步方法... void loadNextPage() { // 调用服务或网络接口获取数据... Page<T> ...
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items); ListView listView = findViewById(R.id.listView); listView.setAdapter(adapter); ``` 接下来,我们...
public void onResponse(Call<List<Item>> call, Response<List<Item>> response) { if (response.isSuccessful()) { List<Item> items = response.body(); // 在这里处理返回的数据 } else { // 处理错误 } ...
ArrayList<String> items = new ArrayList<>(); // 填充你的数据 GridAdapter adapter = new GridAdapter(this, R.layout.grid_item, items); gridView.setAdapter(adapter); gridView.setNumColumns(3); // 设置每...
<solid android:color="#FFFFFF" /> <!-- 设置填充颜色 --> <corners android:radius="8dp" /> <!-- 设置圆角大小 --> <stroke android:width="1dp" <!-- 边框宽度 --> android:color="#000000" /> <!-- 边框...
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dataList); ``` 3. **设置ListView**:将Adapter设置到ListView上,让ListView知道如何展示数据。 ```java ...
android关于listview之列表分组,像Q上一样显示列表项
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items); // 设置适配器 listView.setAdapter(adapter); // 添加点击事件监听器 listView.setOnItemClickListener...
List<Map<String, Object>> listitem = new ArrayList<>(); Collections.sort(listitem, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2...
var listView = FindViewById<ListView>(Resource.Id.listView); var items = new List<string> { "Item 1", "Item 2", "Item 3" }; listView.Adapter = new MyAdapter(this, items); } ``` 至此,我们就完成了...