导航:首页 > 操作系统 > androidlistview实现表格

androidlistview实现表格

发布时间:2022-11-27 12:15:09

A. 如何用安卓开发出复杂表格(类似Excel统计表)

android实现Excel表格

具体的用法: 写好xml的布局文件:分为头部标题和lsitView两个部分。 头部标题永远排在第一列,其中第一个会滑动所以在布局的时候就不要放在
* com.excel.tool.MyHScrollView里面(MyHScrollView重写的HorizontalScrollView)。
* 其它没有什么就是对其滑动处理的把握。
*
* item里面的数据以及布局,按照正确的布局方式和逻辑处理。
*
* 它的用法其实你当做简单的listView那样操作就可以了。
*
* 排序没有完善,其实都是同一个方法,有待合并。
*
*

java">{
Contextcontext;
privateListViewlistView;
privateLinearLayouttoplayout;
privateMyAdaptermyAdapter;
publicList<DataModel>BaseData;
;
/**
*
*isTouchItem值的改变在
*
*com.excel.tool.MyHScrollView中去判断--解决ListView很容易触发点击事件
*
*里面处理控制表格滑动很容易触发的点击事件问题
*/
=false;
/***
*
*排序的监听
*/
privateLinearLayoutsort_0;
privatebooleanischeck;

privateImageViewsort_triangle;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
viewInit();
dataInit();
}

/***
*
*view的初始化
*
*/
publicvoidviewInit(){

toplayout=(LinearLayout)findViewById(R.id.toplayout);
toplayout.setOnTouchListener(onTouchListener);
horizontalScrollView=(HorizontalScrollView)toplayout
.findViewById(R.id.horizontalScrollView_excel);

listView=(ListView)findViewById(R.id.listView);
listView.setOnItemClickListener(onItemClickListener);
listView.setOnTouchListener(onTouchListener);

sort_0=(LinearLayout)findViewById(R.id.sort_0);
sort_0.setOnClickListener(onClickListener);
sort_triangle=(ImageView)findViewById(R.id.waterlevel_triangle);

}

/***
*
*数据的初始化
*
*/
publicvoiddataInit(){
if(BaseData==null)
BaseData=newArrayList<DataModel>();

myAdapter=newMyAdapter(context,toplayout);

for(inti=0;i<Data.subject.length;i++){
DataModelmodel=newDataModel();
model.setSubject(Data.subject[i]);
model.setChinese(Data.Chinese[i]);
model.setMath(Data.Math[i]);
model.setEnglish(Data.English[i]);
model.setPhysics(Data.Physics[i]);
model.setChemistry(Data.Chemistry[i]);
model.setBiology(Data.Biology[i]);
model.setPE(Data.PE[i]);
BaseData.add(model);
}
myAdapter.setHostBaseData(BaseData);
listView.setAdapter(myAdapter);

}

=newOnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.sort_0:
if(ischeck==false){
//对数据进行排序--传入数据,2表示递减排序,1表示递减
BaseData=Sort.sortchukuData(BaseData,2);
myAdapter.setHostBaseData(BaseData);
ischeck=true;
sort_triangle
.setBackgroundResource(R.drawable.triangle_down);
}else{
BaseData=Sort.sortchukuData(BaseData,1);
myAdapter.setHostBaseData(BaseData);
ischeck=false;
sort_triangle.setBackgroundResource(R.drawable.triangle_up);
}
break;

}

}

};

=newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
if(isTouchItem==false)
return;
CustomerToast.showToast(context,"你点击的是:"+position+"这个下标");

}

};

=newOnTouchListener(){

@Override
publicbooleanonTouch(Viewv,MotionEventevent){
switch(v.getId()){
caseR.id.toplayout:
horizontalScrollView.onTouchEvent(event);
returnfalse;
caseR.id.listView:
horizontalScrollView.onTouchEvent(event);
returnfalse;

}
returnfalse;
}

};

}

效果图片:

B. android手机应用开发中如何用listview显示一个表呢

  1. 展示的效果可能类似于下图:

    <LinearLayoutxmlns="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
    android:id="@+id/name_tv"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
    <TextView
    android:id="@+id/price_tv"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

    </LinearLayout>

C. 安卓listview怎么做表格

-----解决方案-------------- import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class ListViewA extends

D. android开发中,table表中的一行又做为listview,如何去实现。

首先在布局中新建个ListView(最好再新建个Layout然后setContentView(...)然后把listview加到这个里面) 之后就好说了,建立一个Listview的适配器,好像是ListAdapter吧,给他弄成是SimpleCursorAdapter()这个括号里面有一大堆的参数,可以设置游标,每行显示多少个数据项,从哪几列中取数据等等,之后再ListView对象.setAdapter(ListAdapter的对象)就可以了,因为查询数据库是要用游标实现的,所以这个布局正好适应了将查询出的结果一行一行的显示。 不好意思刚才没看见你是要把行作为按钮,那你就在适配器中写一个监听事件,应该是OnItemClickListener,然后在里面写东西就好了,总之这些东西都要在你的适配器中写

E. 安卓里面想做个简单表格,能一行一行的选择,并能点击跳转页面。请问用Listview 怎么实现

这样只能一行行的选中,不能选中每个单元格。你可以用gridview做个表格而且还会比较好看

F. android中怎么创建一个表格

效果图:


5、 单击该项目,执行。便得到以上效果!

G. listview中如何用select excel

Listview没有提供直接导入到excel的接口,你只有逐单元格复制数据到excel的相对应的单元格了。
如果是客户端的话,建议先将excel上传到服务器,后台将这个excel文件作为数据源进行查询,将结果集绑定到listview上。
android里面没有表格,只有列表,要做到这样的效果很麻烦的。android里面的ui是适合手机的,这种列表,特别是右边的那个下拉按钮,不适合手机这种屏幕小的设备。

H. android实现复杂table表格合并单元格

可以通过Tablelayout布局的layout_span属性实现,layout_span指定该单元格占据的列数

1、Tablelayout简介

Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行。

2、TableLayout行列数的确定

TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。

TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4.

3、TableLayout可设置的属性详解

TableLayout可设置的属性包括全局属性及单元格属性。

单元格属性,有以下2个参数:

android:layout_column 指定该单元格在第几列显示

android:layout_span 指定该单元格占据的列数(未指定时,为1)

示例:

android:layout_column="1"该控件显示在第1列
android:layout_span="2"该控件占据2列

4、一个TableLayout布局的实例

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"
>
<!--1个TableLayout,用于描述表中单元格的属性,包括:android:layout_column及android:layout_span-->
<TextView
android:text="表:单元格设置:指定单元格属性设置"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dip">
<TableRow>
<Buttonandroid:text="第0列"/>
<Buttonandroid:text="第1列"/>
<Buttonandroid:text="第2列"/>
</TableRow>

<TableRow>
<TextViewandroid:text="我被指定在第1列"android:layout_column="1"/>
</TableRow>

<TableRow>
<TextView
android:text="我跨1到2列,不信你看!"
android:layout_column="1"
android:layout_span="2"
/>
</TableRow>

</TableLayout>

I. android 怎么给listview添加一个固定表头以及显示像table的效果

定义一个样式一条线
<style name="vertical_layout">
<item name="android:layout_width">1dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">#dadada</item>
</style>

1.为表头新建一个layout:a_item.xml(一共设置3个列名)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/a_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:cacheColorHint="#00000000"
android:orientation="horizontal" >
<TextView
android:id="@+id/item1bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一条线 -->
<TextView
android:id="@+id/item2bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_km" <!-- 列名-->
android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一条线 -->
<TextView
android:id="@+id/item3bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_bjqk" <!-- 列名-->

android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一条线 -->
<TextView
android:id="@+id/item4bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_jfjgl" <!-- 列名-->

android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>

<TextView
android:id="@+id/item6ctj"
android:layout_width="100.0dip"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false" >
</TextView>
</LinearLayout>
第一个和最后一个textView不给赋值,用于填充屏幕的空白,显示好看
2.给界面**Activity新建一个main_layout,应用刚才的a_item.xml以及添加一个继承了listView的view对象HVListView
***
<include layout="@layout/a_item" />

<com.gdtech.znpc.android.view.HVListView
android:id="@android:id/list"
android:background="@android:color/white" android:fastScrollEnabled="true"
android:fadingEdgeLength="0.0sp" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:drawSelectorOnTop="false"
android:divider="#dadada"
android:dividerHeight="1.0dip"
android:cacheColorHint="#00000000">
</com.gdtech.znpc.android.view.HVListView >
******
3.获取屏幕的分辨率 为每个表头的设置宽度
private DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
private int w = dm.widthPixels / 16; // 当前分辨率 宽度 分为16份
获取a_item里面的每个textView的id 进行宽度设置
mListView = (HVListView) findViewById(android.R.id.list);
// 设置列头
mListView.mListHead = (LinearLayout) findViewById(R.id.a_item);
// 设置表头的宽度
TextView t11 = (TextView) findViewById(R.id.item1bzrbjzb);
TextView t12 = (TextView) findViewById(R.id.item2bzrbjzb);
TextView t13 = (TextView) findViewById(R.id.item3bzrbjzb);
TextView t14 = (TextView) findViewById(R.id.item4bzrbjzb);

//t13.setText("成绩");

t11.setWidth(w * 0); //不显示第一列
t12.setWidth(w * 3);
t13.setWidth(w * 6);
t14.setWidth(w * 6);

4.给HVListView添加适配器,并设置每列的宽度和表头对应

class ViewHolderbjzb { // 这个类里面定义的TextView数量和表头里面的TextView要一致
TextView item1bjzb;
TextView item2bjzb;
TextView item3bjzb;
TextView item4bjzb;
}

mAdapter = new DataAdapter1();
mListView.setAdapter(mAdapter);

private class DataAdapter1 extends BaseAdapter {
@Override
public int getCount() {
return hang;// 固定显示多少行数据
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater1.inflate(R.layout.bzr_fx_bjzb_head_item,
null);
holder = new ViewHolderbjzb();
holder.item1bjzb = ((TextView) convertView
.findViewById(R.id.item1bzrbjzb));
holder.item2bjzb = ((TextView) convertView
.findViewById(R.id.item2bzrbjzb));
holder.item3bjzb = ((TextView) convertView
.findViewById(R.id.item3bzrbjzb));
holder.item4bjzb = ((TextView)convertView
.findViewById(R.id.item4bzrbjzb));
// holder.item4bjzb=((TextView)
// convertView.findViewById(R.id.item4bjzb));
// holder.item5bjzb=((TextView)
// convertView.findViewById(R.id.item5bjzb));
convertView.setTag(holder);
// 设置表格内容宽度,与表头对应
holder.item1bjzb.setWidth(w * 0);
holder.item2bjzb.setWidth(w * 3);
holder.item3bjzb.setWidth(w * 6);
holder.item4bjzb.setWidth(w * 6);

holder.item1bjzb.setText("");
holder.item2bjzb.setText("");
holder.item3bjzb.setText("");
holder.item4bjzb.setText("");
// holder.item4bjzb.setText("");
// holder.item5bjzb.setText("");
} else {
holder = (ViewHolderbjzb) convertView.getTag();
}
for (int i = 0; i < listDatas.size(); i++) {
// 显示列的id数
// holder.item1bjzb.setText((position + 1) + "");
/*
listDatas 就是要显示的后台数据
*/
if (position == i) {
Map<String, Object> row = listDatas.get(position);
holder.item1bjzb.setText("用后台获取的数据 进行填充就可以"));
holder.item2bjzb.setText("用后台获取的数据 进行填充就可以"));
holder.item3bjzb.setText("用后台获取的数据 进行填充就可以"));
holder.item4bjzb.setText("用后台获取的数据 进行填充就可以"));
}
}
// 设置隔行颜色
if (position % 2 != 0) {
convertView.setBackgroundResource(R.drawable.listview_color_1);
} else {
convertView.setBackgroundResource(R.drawable.listview_color_2);
}
return convertView;
}

网上有很多解决 android listview 水平和垂直滚动的代码,我没有按照他们说的做(以前没搜到 O(∩_∩)O~) 我采用的是添加HorizontalScrollView
Java代码
1. < ScrollView android:id="@+id/ScrollView01"
2. android:layout_height="300px"
3. android:layout_x="16px"
4. android:layout_y="84px"
5. android:layout_width="290px"
6. android:scrollbars="horizontal|vertical">
7. < HorizontalScrollView android:id="@+id/HorizontalScrollView01"
8. android:layout_height="fill_parent"
9. android:layout_width="wrap_content">
10. < LinearLayout android:id="@+id/LinearLayout02"
11. android:layout_width="wrap_content"
12. android:orientation="vertical"
13. android:layout_height="fill_parent">
14. < ListView android:id="@+id/listview"
15. android:layout_height="300px"
16. android:layout_width="fill_parent">
17. < /ListView>
18. < /LinearLayout>
19. < /HorizontalScrollView>
20. < /ScrollView>

我有一个Listview,因为横屏和竖屏原因,内容较多,竖屏会出现有些数据无法显示
于是让Listview在横向上可以滚动。
解决的办法是,用HorizontalScrollView包装Listview,这样,当竖屏时,就会出现横向滚动条。
<HorizontalScrollView
Android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/email_box"
android:id="@+id/advice_main_list_id"
android:padding="5dip"/>
</HorizontalScrollView>

但此时又出现了另一个问题,加上HorizontalScrollView后,虽然我已经设了Listview的宽度是fill_parent。但当内容较少时,Listview还是根据内容自适应宽度,不能满屏。
此时,需要设置一个属性就能解决问题了。设置HorizontalScrollView的android:fillViewport="true"。也就是设置是否将HorizontalScrollView的内容宽度拉伸以适应视口(viewport)

阅读全文

与androidlistview实现表格相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:144
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163