现在有一个问题,想用TableLayout与TableRow来布局,实现每次动态删除TableRow里的内容后后一行的自动能往前一行补(当然说的前提就是多余2行数据),现在这样初始的效果就是每次删除就往前或当前位置推进,不能往上一行推进,我希望的就是如果中间哪行某个位置删除了,最终效果中间不会有空,空到最后一个位置的内容。只要是能实现这种功能,不一定要使用TableLayout与TableRow布局。缺陷代码如下:
TestActivity.javaimport android.app.*;
import android.os.*;  
import android.view.*;
import android.view.View.*;
import android.widget.*;public class TestActivity extends Activity{ 
private Button[] jb;
private final int WC = ViewGroup.LayoutParams.WRAP_CONTENT;
private final int FP = ViewGroup.LayoutParams.FILL_PARENT;
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
TableLayout tableLayout = (TableLayout)findViewById(R.id.TableLayout01);
jb=new Button[50];
for(int i=0;i<50;i++)
{
jb[i]=new Button(this);
}
  for(int i=0;i<5;i++)
{
final TableRow tr=new TableRow(this); 
for(int j=0;j<10;j++)
{  
final int nm=50;
if((10*i+j)<nm)
{
final int tt=10*i+j;
jb[(10*i+j)].setText(""+(10*i+j));
jb[(10*i+j)].setOnClickListener(new OnClickListener()

public void onClick(View v) {  
tr.removeView(jb[tt]); 

});
    tr.addView(jb[(10*i+j)]);
}
            }
tableLayout.addView(tr, new TableLayout.LayoutParams(FP, WC));

}  
} layout.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" >
     <ScrollView android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:scrollbars="horizontal">
    <TableLayout android:layout_width="fill_parent" android:id="@+id/TableLayout01"
android:layout_height="wrap_content"> 
 
    </TableLayout>
    </ScrollView>   
</LinearLayout>

解决方案 »

  1.   

    看来你真是新手,你这个需求最好用ListView控件来实现。
    你去看看ListView的用法,删除一行数据后重新绑定一下数据源并调用一个方法通知listview更新界面就可以了。很简单的。
      

  2.   

    在网上搜索android listview的用法
      

  3.   

    虽然我是个菜鸟,但是我觉得我的功能用ListView实现不了。你先把我的功能运行一下,或许你才能知道我需要什么样的功能。
      

  4.   

    我删除的不是行,而是"列",这点你们先搞清楚,行的话谁都会。ListView的确很方便实现删除行,TableLayout也一样方便,但是我这里不是行,是删除【列】。。
      

  5.   

    把listview对应的列所绑定的数据置为“”再刷新不就变相的实现了楼主的功能吗?
      

  6.   

    TableLayout 有个属性叫 android:collapseColumns可以去掉对应的列
      

  7.   

    如果是列的话,请用GridView把,它可以删除里面的单元格后,重新设置一下数据源,再告诉控件数据源发生变化了,它就会根据新的数据源来进行绑定,用法和ListView差不多。