标签: android-tablelayout

以编程方式添加到TableLayout的视图未显示

我正在尝试向TableLayout添加视图,但它们根本不会显示(我正在模拟器上测试).实际上我写了比这更多的代码,即将textviews添加到tablerows中,但我已经将其缩减到了这一点,即使这样也行不通.知道为什么吗?

这是代码test.xml:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >
</TableRow>

<TableRow
    android:id="@+id/tableRow2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEST" >
    </TextView>
</TableRow>

</TableLayout>
Run Code Online (Sandbox Code Playgroud)

和java代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.test);

    /* Find Tablelayout defined in test.xml */
    TableLayout tl = (TableLayout) findViewById(R.id.tableLayout);
    /* Create a new row to be added. */
    TableRow tr = new TableRow(this);
    tr.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT));
    /* Create a Button to …
Run Code Online (Sandbox Code Playgroud)

android android-view android-tablelayout

4
推荐指数
1
解决办法
4639
查看次数

使用 TextViews 将 onClickListener 设置为 TableRow

祝大家有个美好的一天。

我的每一行都有TableLayout三个TextViews。是否仍然可以添加OnClickListener到整行?我想更改所选行的背景颜色。我已经设定OnClickListenerTableRow通过执行以下,但背景颜色不会改变:

   for(int i =0; i < rowAmount; i++)
        {           
            TableRow tr= new TableRow(this);

            TextView rmNo;
            TextView s;
            TextView p;

            rmNo = new TextView(this);
            s = new TextView(this);
            p = new TextView(this);

            rmNo.setText("" + roomNumbers.get(i).toString());
            s.setText("" + statuses.get(i).toString());
            p.setText("" + priorities.get(i).toString());

            tr.addView(rmNo);
            tr.addView(s);
            tr.addView(p);      

            tr.setOnClickListener(new View.OnClickListener() 
            {                   
                @Override
                public void onClick(View v)
                {
                    tr.setBackgroundColor(color.holo_blue_light);
                }
            });

            tblContent.addView(tr);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我正在以编程方式创建 TableRows 和 TextViews,因为它们的数据是从数据库中检索的。

这是 XML:

<ScrollView
    android:id="@+id/scroll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tblTitles"> …
Run Code Online (Sandbox Code Playgroud)

android tablelayout tablerow android-tablelayout

4
推荐指数
1
解决办法
2万
查看次数

如何根据其中的数据使整个活动可滚动

Hii伙计们我已经尝试了LinearLayout,其中我放了几个textview.我完全对每个视图使用权重.当数据在长度上变得太多而textview没有完全显示时会出现问题.我也尝试过tabletlayout但是这个东西也没有用,因为最终tablelayout在线性布局里面有重量,所以它不会超过一定限度.我想知道如何使用权重显示所有数据时可以滚动活动.

android vertical-scrolling android-layout android-linearlayout android-tablelayout

4
推荐指数
2
解决办法
2万
查看次数

Android 以编程方式创建表

我正在尝试使用给定的行号和列号生成一个数字表。该程序从用户那里获取两个参数,并使用给定的参数创建表格行和列。每个单元格都有一个 1 到 100 之间的随机数值。就我而言,我使用 2 个不同的 EditText 视图对 XML 进行编码,这些视图将作为我的参数。我将使用四个按钮“创建”、“计算”、“重置”、“退出”。当用户单击“创建”按钮时,将使用给定的行和列值生成表。因此我必须从我的 java 文件而不是 XML 文件创建我的表。

到目前为止,这是我的代码:

public class MainActivity extends AppCompatActivity {

private Button btnCreate, btnCalculate, btnReset, btnExit;
private EditText txtColumn, txtRow;
private LinearLayout linLayout;
private TableLayout table;
private TextView txtResult;
private Random random;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnCreate = (Button) findViewById(R.id.btnCreate);
    btnCalculate = (Button) findViewById(R.id.btnCalculate);
    btnReset = (Button) findViewById(R.id.btnReset);
    btnExit = (Button) findViewById(R.id.btnExit);

    txtColumn = (EditText) findViewById(R.id.txtColumn);
    txtRow = (EditText) findViewById(R.id.txtRow);
    txtResult = (TextView) findViewById(R.id.txtResult); …
Run Code Online (Sandbox Code Playgroud)

java android android-tablelayout

4
推荐指数
1
解决办法
8830
查看次数

如何获取表行/表项的单击事件?

我在.xml文件中有一个简单的表格布局.我在运行时向它添加组件.以下是我的代码:

public class Home extends Activity{

    TextView tv1; int i;TableRow tbrow;
    String [] names = {"First Name","Last Name", "Title","Company","Phone"};
    int [] images = { R.drawable.icon,R.drawable.icon,R.drawable.star2,R.drawable.icon,R.drawable.icon}


        @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);      
        TableLayout ll=(TableLayout) findViewById(R.id.tableLayout1);


        TableRow trow=new TableRow(this);
        ImageView Image1=new ImageView(this);
        ImageView Image2=new ImageView(this);
        ImageView Image3=new ImageView(this);
        ImageView Image4=new ImageView(this);
        tv1=new TextView(this);
        trow.setClickable(true);

        Image1.setImageResource(R.drawable.blank);
        Image2.setImageResource(R.drawable.star2);
        Image3.setImageResource(R.drawable.blank);
        Image4.setImageResource(R.drawable.blank);

        tv1.setText("Brochures");
        trow.addView(Image1);
        trow.addView(tv1);
        trow.addView(Image2);
        trow.addView(Image3);
        trow.addView(Image4);
        trow.setId(0);
        ll.addView(trow);
        for(i=1;i<5;i++){
            tbrow=new TableRow(this);
            ImageView img1=new ImageView(this);
            tv1=new TextView(this);
            CheckBox chk=new CheckBox(this);
            ImageView img2=new ImageView(this); …
Run Code Online (Sandbox Code Playgroud)

android row android-tablelayout

3
推荐指数
1
解决办法
1万
查看次数

在Android中以编程方式实现android:stretchColumns ="*"

我正在开发一个在TableLayout中实现上述属性的应用程序.

我想知道有谁可以帮助我并告诉我如何以编程方式而不是在布局文件中这样做?

android tablelayout android-layout android-tablelayout

3
推荐指数
1
解决办法
4203
查看次数

如何从动态创建的Android TableRow中获取值?

我使用下面的代码TableRow动态创建内容.它运作良好,但我希望得到的价值TableRow.这是示例代码(我是从Google获得的),它有两个文本值TableRow.当我点击TableRow任意位置时,它会给出相应的值TableRow(我希望类似于a ListView).

All_CustomsActivity.java

public class All_CustomsActivity extends Activity {

    String companies[] = { "Google", "Windows", "iPhone", "Nokia", "Samsung",
            "Google", "Windows", "iPhone", "Nokia", "Samsung", "Google",
            "Windows", "iPhone", "Nokia", "Samsung" };
    String os[] = { "Android", "Mango", "iOS", "Symbian", "Bada", "Android",
            "Mango", "iOS", "Symbian", "Bada", "Android", "Mango", "iOS",
            "Symbian", "Bada" };

    TableLayout tl;
    TableRow tr;
    TableRow mTable = null;
    TextView companyTV, valueTV;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tl …
Run Code Online (Sandbox Code Playgroud)

android tablerow android-tablelayout

3
推荐指数
1
解决办法
2万
查看次数

以编程方式将列添加到表

我以编程方式将列添加到表中有些麻烦,也许我查找/搜索错误的关键字,但找不到合适的解决方案.

我得到了这段代码:

 ScrollView sv = new ScrollView(this);

         TableLayout ll=new TableLayout(this);
         HorizontalScrollView hsv = new HorizontalScrollView(this);
         TableRow tbrow=new TableRow(this);
         for(int i=0;i<mConnector.idArray.size();i++) {
             tbrow=new TableRow(this);         

                 TextView tv1=new TextView(this);
                 //String s1 = Integer.toString(i);
                 try {
                String insecticide = mConnector.insecticideArray.get(i);
                String wegedoornuis = mConnector.wegedoornluisArray.get(i);
                String dosering = mConnector.doseringArray.get(i);
                String prijs = mConnector.prijsArray.get(i);
                String bestuivers = mConnector.bestuiversArray.get(i);
                String roofvijanden = mConnector.roofvijandenArray.get(i);                    

               // String result = insecticide +" | "+wegedoornuis+" | "+dosering+" | "+prijs+" | "+bestuivers+" | "+roofvijanden;
               // int id = Integer.parseInt(s3);
                 tv1.setId(i);

                 tv1.setText(id);
                 tbrow.addView(tv1); …
Run Code Online (Sandbox Code Playgroud)

android android-tablelayout

3
推荐指数
1
解决办法
1万
查看次数

以编程方式设置TableRow数组的边框

我知道它和这里的问题相同 但是它还没有得到答案,所以我在这里试试,因为我也需要它:)
我得到了一个数组:(我缩短了SO的数组/代码)

ScrollView sv = new ScrollView(this);
TableLayout ll=new TableLayout(this);
HorizontalScrollView hsv = new HorizontalScrollView(this);
TableRow tbrow=new TableRow(this);
 for(int i=0;i<mConnector.idArray.size();i++) {
         tbrow=new TableRow(this);
         tbrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
         tbrow.setBackgroundColor(Color.rgb(51, 51, 51));

         ll.addView(tbrow);
 }

hsv.addView(ll);
sv.addView(hsv);
setContentView(sv);
Run Code Online (Sandbox Code Playgroud)

遗漏了数组中的信息,我认为你不需要它.
但是如何在每一行中添加边框(更喜欢水平和垂直)?我希望这是解决方案:

tbrow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
tbrow.setBackgroundColor(Color.rgb(51, 51, 51));
Run Code Online (Sandbox Code Playgroud)

但它只是将整张桌子的颜色变为灰色.

希望我足够清楚,并希望他们是一个解决方案.

android tablerow android-view android-tablelayout

3
推荐指数
1
解决办法
1万
查看次数

使单元格的宽度和高度相同,以填充表格

我正在尝试学习如何在android中使用表格布局,这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <!-- 3 columns -->
    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dip" >

        <TextView
            android:id="@+id/textView2"
            android:text="Column 1" />

        <Button
            android:id="@+id/button2"
            android:text="Column 2" />

        <Button
            android:id="@+id/button3"
            android:text="Column 3" />
    </TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

这就是结果:

在此输入图像描述

我怎样才能让TableRow适合的宽度TableLayout和高度与TableLayout高度?简单来说,我希望所有具有相同宽度的列和具有相同高度的行填充TableLayout,是否可能?怎么样?

android android-tablelayout

3
推荐指数
1
解决办法
1万
查看次数