亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在每行中添加 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);

這將給出你想要的。快樂編碼..

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

這是你想要的嗎?(在這張圖中)


查看完整回答
反對 回復 2021-08-25
  • 3 回答
  • 0 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號