【问题标题】:Android: change button id of buttons added using for loop?Android:更改使用 for 循环添加的按钮的按钮 ID?
【发布时间】:2016-04-10 08:54:15
【问题描述】:

好的,基本上我目前正在创建一个应用程序,并且有一个活动,我在滚动视图中显示了许多编辑文本视图和图像视图,因此我使用 for 循环在每个元素下方添加了一个删除按钮。但是,当我使用删除按钮删除其中一个元素时,我需要通过减去一个来更改当前删除的每个元素的键。现在,这很好用,但是当我尝试更改删除按钮的键,以便每个删除按钮现在都引用 id-changed 元素时,它似乎在我的应用程序中不起作用。

for(int i=0;i<length;i++)//create a delete button for every element in activity
    {
        final int bkey=500+i+1;
        final int key=i+1;
        Button btn = (Button)findViewById(bkey);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                LinearLayout myLayout=(LinearLayout)findViewById(R.id.linearlayout);
                SharedPreferences id = getSharedPreferences(PREFS_NAM, 0);
                SharedPreferences.Editor idedit = id.edit();
                if (id.getBoolean(""+key+"img",false)==true){
                    ImageView img=(ImageView)findViewById(key);
                    Button b=(Button)findViewById(bkey);
                    myLayout.removeView(img);
                    myLayout.removeView(b);
                }
                else {
                    EditText et = (EditText) findViewById(key);
                    Button b = (Button) findViewById(bkey);
                    myLayout.removeView(b);
                    myLayout.removeView(et);
                }
                if (key!=length) {
                    for (int i = key; i < (length); i++) {
                        int x = i + 1;
                        int temp=500+i;
                        int butkey=500+i+1;
                        if (id.getBoolean("" + x + "img", false) == false) {
                            EditText t = (EditText) findViewById(x);
                            Button b=(Button) findViewById(butkey);//This is what I tried
                            b.setId(temp);
                            t.setId(i);
                        } else {
                            ImageView im = (ImageView) findViewById(x);
                            im.setId(i);

                        }
                    }
                }
                if (key!=length) {
                    for (int i = key; i < (length); i++) {
                        int temp = i + 1;
                        int size = i + 100;
                        int tempsize = 100 + temp;
                        idedit.putString("" + i, id.getString("" + temp, null));
                        idedit.putInt("" + size, id.getInt("" + tempsize, 0));
                        idedit.putBoolean("" + i + "img", id.getBoolean("" + temp + "img", true));
                    }
                }

                length--;
                idedit.putInt("num",length);

                idedit.commit();

            }
        });
    }

我知道断章取义很难理解,但如果您注意到任何可以帮助我的东西,我将不胜感激,在此先感谢!

【问题讨论】:

    标签: android button android-studio


    【解决方案1】:

    您可以在列表视图或 RECYCLE VIEW 中执行此操作,使用文本、图像和按钮制作自定义列表视图,当按下按钮时,列表将从数组列表中删除。希望这会对您有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2016-03-20
      • 2020-11-29
      • 1970-01-01
      相关资源
      最近更新 更多