2016-11-22 10 views
-1

ボタンをクリックすると、新しいオブジェクトがArrayListに追加されます。ArrayList(Android)にアイテムを追加しないようにする方法

private List<Object> addObject = new ArrayList<>(); 

私がクリックしたとき、それは私の中でいくつかの点で、この

Object object = new object; 
object.setTitle("stuff"); 
object.isLast = false; 
addObject.add(object); 

それが必要、その後、私のArrayListとアダプタに接続として、この作品...矢田の矢田の矢田

を行いますコード、オブジェクトは真実になるでしょう。どのようにして、最後のものからArrayListに追加するのを防ぎますか?

私はあなたのコード全体をを見て良いだろう...私は問題はどのような援助が高く評価され、私のコードはstructedでどのようにしてかもしれないと思うループに

for (int i = 1; i < addObject.size(); i++ { 
    Object newboject = addObject.get(i); 

     if(newobject.getIsLast)){ 

     //Then i kinda need to stop adding to the list on further clicks. 
     } 
} 

を実行している

+0

フラグ変数を設定し、追加する前にこの変数をチェックしますか?また、あなたのクラスに 'Object'という名前を付けないことを強くお勧めします。 – SomeJavaGuy

+0

ええ、それは例のためだけです..それはオブジェクトを使用しています...しかし、私は旗を設定することを通じて私を歩くことができますか? @KevinEsche –

+2

あなたは 'object'を追加して、それを追加すべきかどうかチェックしますか? – Stefan

答えて

0

を試してみましたあなたは適切な場所を示すが、ケビンによってフラグ-ソリューションは、次のようになります。

private boolean isAtEnd = false; 

if (object.getIsLast()) { 
    isAtEnd = true; 
} 

if (!isAtEnd) { 
    addobject.add(object); 
} 
0
public class TestRing extends Activity 
{ 

boolean isLastObj = false; 
Button add; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.testring); 



    add = (Button) findViewById(R.id.btnAdd); 
    add.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) 
     { 

      if(!isLastObj) 
      { 
       for (int i = 1; i < addObject.size(); i++) 
       { 
        Object newboject = addObject.get(i); 
        newboject.setTitle("stuff"); 
        newboject.isLast = false; 
        newboject.add(object); 

        if(newboject.getIsLast) 
        { 
         isLastObj = true; // this will prevent furtheradding of objects 

        } 
       } 
      } 
     } 
    }); 

} 

}

0

は、あなたはすでに、すべてのアイテム(と最後の1)が含まれてあなたのリストから、固定サイズのリストを作成してアダプタにそれを渡すことができます:

List<Object> finalObjectList = Arrays.asList(addObject); 

ことをご承知おきください追加このリストの要素はjava.lang.UnsupportedOperationException

0

ロジック(オーダーされたコレクションのみで動作):リストの最後の要素の 'isLast'フィールドをチェックします。

if(addObject.size() > 0 && !addObject.get(addObject.size()).getIsLast()){ 
    Object object = new object; 
    object.setTitle("stuff"); 
    object.isLast = false; 
    addObject.add(object); 
} 

解決策は少し不器用ですが、ロジックが含まれているため外部フラグに依存しません。

関連する問題