1. android gridview怎么做表格
功能:做表格,根据每个单元格的不同含义,给单元格设置不同的背景色;
实现:通过GridView结合BaseAdapter实现;
案例源码:
第一步,新建一个Android应用:BaseAdapterDemoActivity;
第二部,重写main.xml,如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
第三步,在BaseAdapterDemoActivity.java文件中创建MyAdapter,基类是BaseAdapter,如下:
package hello.zcping.adapter;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class BaseAdapterDemoActivity extends Activity {
private GridView mGridView;
private MyAdapter mMyAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
public void setupViews() {
mMyAdapter = new MyAdapter();
mGridView = (GridView) findViewById(R.id.gridview);
mGridView.setAdapter(mMyAdapter);
mGridView.setNumColumns(5);
}
private class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return 20;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView mTextView = new TextView(getApplicationContext());
String[] abc = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
int[] icolor = { Color.GRAY, Color.GREEN, Color.RED, Color.WHITE,
Color.YELLOW, Color.GRAY, Color.GREEN, Color.RED,
Color.WHITE, Color.YELLOW, Color.GRAY, Color.GREEN,
Color.RED, Color.WHITE, Color.YELLOW, Color.GRAY,
Color.GREEN, Color.RED, Color.WHITE, Color.YELLOW };
mTextView.setText(abc[position]);
mTextView.setTextColor(Color.BLACK);
mTextView.setBackgroundColor(icolor[position]);
return mTextView;
}
}
}
效果如下:
2. android GridView 如何设置为左右可滚动
GridView不支持左右滚动。
左右滚动的需求可考虑:
在外层加一个HorizontalScrollView, 不过这种滑动体验并不好,上下左右均可滑动,如果是斜着滑的时候,体验差。当然,如果你会自定义HorizontalScrollView把滑动区分为斜着上下滑和斜着左右滑,再把斜着上下滑的事件传递给子View也是可以的。
可以考虑Viewpager里加载多个GridView,这样GridView就可以一页一页的滑
3. 安卓开发 如何拿到数据列表 把size显示到界面上
Android中加载list列表数据主要是通过Adapter实现,可用显示列表的控件如下: Listview GridView ExpandListview 显示具体的数据需要通过Adapter实现,Android目前有4种Adapter: ArrayAdapter SimpleAdapter SimpleCursorAdapter BaseAdapter ( 自定义Adapter) 具体操作步骤 ( 以自定义Adapter为例): 在xml中定义Listview布局 在代码中通过ID找到Listview控件 构建Adapter对象,新建一个类继承自BaseAdapter,重写它的四个方法,具体如下代码 构造好适配器后设置Listview的adapter对象为新建的适配器,界面即可显示数据 在数据变动的地方,只需要调用adapter的notifyDataSetChanged方法即可刷新界面 package com.beryl.gougou; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import java.util.List; /** * Created by yt on 16/11/14. */ public class MyAdapter extends BaseAdapter { private List<String> datalist; private LayoutInflater inflater; public MyAdapter(Context context ,List<String> datalist){ this.datalist = datalist; inflater = LayoutInflater.from(context); } @Override public int getCount() { return datalist.size(); } @Override public Object getItem(int position) { return datalist.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { //此处参考网上的view缓存机制,示例demo不多说明 return null; } }
4. 关于android中GridView控件
因为调了两次getData(),最后你的gridView的数据源是循环加了两遍的全局变量dataList。
方法一:删除第一个调用getData那行,不用全局变量dataList,在getData方法里面new一个局部的List,返回这个局部变量
方法二:不删第一个调用getData那行,new SimpleAdapter的时候不再调用getData方法,直接用dataList