2016-04-10 1 views
1

基本的に私は現在アプリケーションを作成していますが、多くの編集テキストビューと画像ビューがスクロールビューに表示されているアクティビティがあるので、forループを使用して各要素の下に削除ボタンを追加します。ただし、削除ボタンを使用して要素の1つを削除すると、現在削除されている各要素のキーを1つ減じて変更する必要があります。今、これはうまくいきますが、削除ボタンのキーを変更しようとすると、それぞれの削除ボタンがid変更された要素を参照するようになり、私のアプリケーションでは機能しないように見えます。Android:forループを使って追加されたボタンのidを変更しますか?

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(); 

      } 
     }); 
    } 

私は、コンテキストの外に理解することは、そのハードを知っていますが、それは私を助けることができる気づくかもしれません何がある場合、私は、事前のおかげで非常に感謝されます!

答えて

0

あなたはリストビューまたはRECYCLEビ​​ューでこれを行うことができますが、テキストや画像、ボタンとボタンが押され、これまでリストがarray.Hopeのリストから削除されますとき、これはあなたに

を支援するとともに、カスタマーリストビューを作成します
関連する問題