【发布时间】: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