2017-10-02 19 views
2

私はCheckBoxArrayListを設定しましたが、どれがタッチされたのかはどのようにわかりますか?具体的には、どのチェックボックスにタッチされたかのうち、 "i"の整数値を取得したいだけです。ArrayList何か案は?どのチェックボックスがタッチされたかを検出しますか? Array Java Android Studio

@Override 
    public void sendData(String userText, String userNotes) { 

     //we can create the saves here as well.... 

     LinearLayout ll = (LinearLayout)findViewById(R.id.myLayout); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
     CheckBox tv = new CheckBox(getApplicationContext()); 
     tv.setTextSize(20); 
     tv.setText(userText + " \n" + date); 
     tv.setLayoutParams(lp); 
     checkBoxArrayList.add(tv); 

     //Handles if checkbox is pressed down, and set id for each check box 
     for(int i = 0; i < checkBoxArrayList.size(); i ++){ 

      checkBoxArrayList.get(i).setId(i); 

      checkBoxArrayList.get(i).setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View view, MotionEvent motionEvent) { 

        switch(motionEvent.getAction()) { 

         case MotionEvent.ACTION_DOWN: 
          //here we will simply open the files unless held down 

          //when held down 
          view.postDelayed(runnable, 1250); 
          break; 

        } 
        return false; 
       } 
      }); 
      } 

      //add checkbox passed in to the layout 
      ll.addView(tv); 
     } 

@rexのおかげで、私は単純にグローバルプライベート整数checkboxPopupCheckを持っていました。ケースMotionEvent.ACTION_DOWNの内側に追加しました。私は今この整数を私が必要とするものに使うことができます。

checkboxPopupCheck = view.getId(); 

答えて

1

あなたのonTouchメソッドには2つのパラメータがあり、最初はタッチされたビューです。

だから、簡単なview.getId()を行うと、あなたが

checkBoxArrayList.get(i).setId(i); 

で設定した同じIDを返し、それはチェックをクリックする場所をアダプタ内のこのコードを試してみてくださいArrayListの

+0

あなたが感謝を揺すります – pewpew

0

の整数値ですうボックスに新しい配列リストを作成し、ホルダーの位置または値を配列リストに追加すると、チェックされているアイテムがわかります

holderItem.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
 
      @Override 
 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
 
       if(isChecked){ 
 
        // add in to a arraylist 
 
       }else{ 
 
        // remove it from arraylist 
 
       } 
 

 
      } 
 
     });

関連する問題