为了账号安全,请及时绑定邮箱和手机立即绑定

如何在每行中添加 3 个按钮

如何在每行中添加 3 个按钮

慕村225694 2021-08-25 16:20:36
我正在写下 Android Studio 应用程序的代码,但是当我测试该函数以检查密码是否正确并在数据库中匹配时,应用程序崩溃了。我已经在以下代码中隔离了问题。如果我从代码中删除此功能,则该应用程序运行良好。 public String searchPass(String uname, String pass){    db = this.getReadableDatabase();    String query= "select uname, pass from" + TABLE_NAME;    Cursor cursor=db.rawQuery(query, null);    String a, b;    b="not found";    if(cursor.moveToFirst()){        do{            a= cursor.getString(0);            if(a.equals(uname)){                b=cursor.getString(1);                break;            }        }while(cursor.moveToNext());    }    return b;}
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

一个简单的答案是在每次迭代中只添加 3 个按钮。我的情况是这是最后一次迭代,添加的按钮更少,只需添加更少:


    LinearLayout mainLayout = new LinearLayout(this);

    mainLayout.setOrientation(LinearLayout.VERTICAL);


    int totalItems = 13;

    for (int k=0; k<totalItems; k+=3)

    {

        LinearLayout layout = new LinearLayout(this);

        layout.setOrientation(LinearLayout.HORIZONTAL);

        layout.setTag(k/3);


        int numberOfButtonsInRow = (k + 3 < totalItems) ? 3 : totalItems % 3;


        for(int l = 0; l < numberOfButtonsInRow; l++)

        {

            Button b = new Button(this);

            b.setTag(k + l);

            b.setText("Button " + (k + l));

            layout.addView(b);

        }


        mainLayout.addView(layout);

    }

此外,我建议将内部循环的内容提取到一个单独的函数中,尽管我将其留在这里是为了使其简短。


查看完整回答
反对 回复 2021-08-25
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

只需在另一个for循环中的“LinearLayout ll”视图中再添加两个按钮


查看完整回答
反对 回复 2021-08-25
?
侃侃无极

TA贡献2051条经验 获得超10个赞

解决方案:


    LinearLayout ll_rootOBJ = findViewById(R.id.ll_root);

    LinearLayout mainLayout = new LinearLayout(this);

    mainLayout.setOrientation(LinearLayout.VERTICAL);


    for (int k=0; k<13; k++)

    {

        LinearLayout ll = new LinearLayout(this);

        ll.setOrientation(LinearLayout.HORIZONTAL);

        ll.setTag(k);


        for (int i=1; i<4; i++) {

            Button b = new Button(this);

            b.setTag(k);

            b.setText("Button");

            ll.addView(b);

        }

        mainLayout.addView(ll);


    }


    ll_rootOBJ.addView(mainLayout);

这将给出你想要的。快乐编码..

//img1.sycdn.imooc.com//6125fd850001150f06951303.jpg

这是你想要的吗?(在这张图中)


查看完整回答
反对 回复 2021-08-25
  • 3 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信