`
AaronGo
  • 浏览: 28755 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Android之ListView<2>

阅读更多

       在ListView<1>中,简单的实现了List的效果,但是有很大弊病,UI界面是与用户交互的直接窗口,显然,list模板是一个单一的TextView过于单调,如果,这个模板我们可以集合android的UI组件自行设计,效果就会很好。

        在这个例子中,新建了一个XML文件show.xml,专门用来设置list的每一条目显示的模板,在本例中,只是ImageView和TextView的结合,当然还可以有更复杂的,用ImageView,TextView,Button等等组件以RelativeLayout的布局可以创建出我们喜欢的list模板。

        在activity_main.xml中创建一个标签,<ListView>,这样在MainActivity.java中拿到这个ListView,然后加入适配器,那么显示的内容就会显示在activity_main的ListView的位置,所以在activity_main的布局中我们可以让ListView放在一个合适的位置。

        在本例中有一个比较重要的地方,在MyAdapter中的getView方法中如何将我们创建的show.xml表现的布局作为ListView的显示形式,代码如下:

View view = View.inflate(MainActivity.this, R.layout.show, null);

 这一行代码可以看出它的作用是拿到show.xml模板的view,在前面的讲过将xml文件实例化为view对象,有三种形式,代码如下:

LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
View layout = inflater.inflate(R.layout.main, null);  


LayoutInflater inflater = LayoutInflater.from(context);  
View layout = inflater.inflate(R.layout.main, null);  
   

LayoutInflater inflater = getLayoutInflater();  
View layout = inflater.inflate(R.layout.main, null);  

 其实这三种形式的源码都是一样的,看view的inflate函数的源码:

/**
     * Inflate a view from an XML resource.  This convenience method wraps the {@link
     * LayoutInflater} class, which provides a full range of options for view inflation.
     *
     * @param context The Context object for your activity or application.
     * @param resource The resource ID to inflate
     * @param root A view group that will be the parent.  Used to properly inflate the
     * layout_* parameters.
     * @see LayoutInflater
     */
    public static View inflate(Context context, int resource, ViewGroup root) {
        LayoutInflater factory = LayoutInflater.from(context);
        return factory.inflate(resource, root);
    }

 

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.list);
        listView.setAdapter(new MyAdapter());
    }

    private class MyAdapter extends BaseAdapter{

		@Override
		public int getCount() {
			return 50;
		}

		@Override
		public Object getItem(int arg0) {
			return null;
		}

		@Override
		public long getItemId(int position) {
			return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			
			View view = View.inflate(MainActivity.this, R.layout.show, null);
			
			ImageView image = (ImageView)view.findViewById(R.id.image);
			image.setImageResource(R.drawable.win);
			TextView textView = (TextView)view.findViewById(R.id.textView);
			textView.setTextSize(20);
			textView.setText("More effort,more fournate" + i++);
			return view;
		}
    }
    
}

 

 

 

 

 

  • 大小: 63.5 KB
分享到:
评论

相关推荐

    Android之ListView<3>ArrayAdapter,SimpleAdapter

    这篇博客“Android之ListView&lt;3&gt;ArrayAdapter,SimpleAdapter”主要探讨了两种常用的适配器:ArrayAdapter和SimpleAdapter,它们是连接数据源与ListView的关键组件。 ArrayAdapter是Android SDK内建的一种适配器,...

    Android listview自动换行

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在显示数据集合时十分有用。然而,当ListView的子项(item)宽度超过屏幕宽度时,如何实现自动换行就成了一个...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    在Android开发中,ListView是一种常用的视图组件,用于展示大量数据列表。当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下...

    Android_ListView动态刷新

    在Android应用开发中,`ListView`是显示大量数据集的常用组件之一,尤其在需要展示列表项时非常实用。然而,在数据集更新时,如何实现实时或动态地刷新`ListView`,是开发者经常面临的问题。本文将围绕“Android_...

    Android之ListView列表视图和界面跳转实现

    List&lt;String&gt; items = Arrays.asList("项1", "项2", "项3"); // 示例数据 MyAdapter adapter = new MyAdapter(this, items); listView.setAdapter(adapter); ``` ### 5. 实现界面跳转 当用户点击ListView的某一项...

    android dialog嵌套ListView

    List&lt;String&gt; itemList = new ArrayList&lt;&gt;(); // 初始化itemList CustomDialog dialog = new CustomDialog(this, itemList); dialog.show(); ``` 以上就是关于“android dialog嵌套ListView”实现的基本步骤,包括...

    android多选ListView示例

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(this, android.R.layout.simple_list_item_checked, listData) { @Override public View getView(int position, View convertView, ViewGroup parent) {...

    Android ListView简单应用

    ArrayAdapter&lt;String&gt; arrayAdapter=new ArrayAdapter&lt;String&gt;( MainActivity.this,android.R.layout.simple_list_item_1,msWordS ); ListView listView = findViewById(R.id.Main_ListView); listView....

    Android开发-Retrofit-AndroidStudio(三)ListView&Picasso_免积分

    public void onResponse(Call&lt;List&lt;Item&gt;&gt; call, Response&lt;List&lt;Item&gt;&gt; response) { if (response.isSuccessful()) { List&lt;Item&gt; items = response.body(); // 在这里处理返回的数据 } else { // 处理错误 } ...

    Android_ListView分页

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。由于一次性加载所有数据可能会消耗大量内存并导致应用性能下降,因此通常会采用分页加载(Pagination)的方式来优化用户体验。本篇文章将深入...

    android ListView 网格布局

    ArrayList&lt;String&gt; items = new ArrayList&lt;&gt;(); // 填充你的数据 GridAdapter adapter = new GridAdapter(this, R.layout.grid_item, items); gridView.setAdapter(adapter); gridView.setNumColumns(3); // 设置每...

    Android ListView长按删除

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, android.R.layout.simple_list_item_1, items); ListView listView = findViewById(R.id.listView); listView.setAdapter(adapter); ``` 接下来,我们...

    android关于listview之列表分组

    android关于listview之列表分组,像Q上一样显示列表项

    Android review listview 显示 单击事件

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, android.R.layout.simple_list_item_1, dataList); ``` 3. **设置ListView**:将Adapter设置到ListView上,让ListView知道如何展示数据。 ```java ...

    Android ListView边框圆角美化

    &lt;solid android:color="#FFFFFF" /&gt; &lt;!-- 设置填充颜色 --&gt; &lt;corners android:radius="8dp" /&gt; &lt;!-- 设置圆角大小 --&gt; &lt;stroke android:width="1dp" &lt;!-- 边框宽度 --&gt; android:color="#000000" /&gt; &lt;!-- 边框...

    android中一个简单的LIstView用法例子

    ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, android.R.layout.simple_list_item_1, items); // 设置适配器 listView.setAdapter(adapter); // 添加点击事件监听器 listView.setOnItemClickListener...

    Android开发之对ListView的数据进行排序.txt

    List&lt;Map&lt;String, Object&gt;&gt; listitem = new ArrayList&lt;&gt;(); Collections.sort(listitem, new Comparator&lt;Map&lt;String, Object&gt;&gt;() { @Override public int compare(Map&lt;String, Object&gt; o1, Map&lt;String, Object&gt; o2...

    C# xamarin android listview简单使用

    var listView = FindViewById&lt;ListView&gt;(Resource.Id.listView); var items = new List&lt;string&gt; { "Item 1", "Item 2", "Item 3" }; listView.Adapter = new MyAdapter(this, items); } ``` 至此,我们就完成了...

Global site tag (gtag.js) - Google Analytics