読者です 読者をやめる 読者になる 読者になる

【Android】クリックイベント

Android

 

▼クリック(タグで判定)
Button v = (Button)findViewById(R.id.btn);
v.setTag(1); ※タグ設定
v.setOnClickListener(this);

 

@Override

public void onClick(View v){

  int num = v.getTag(); ※タグ取得
}

----------------------------------------------------------------------------------------------

▼クリック(idで判定)
Button v = (Button)findViewById(R.id.btn);
v.setOnClickListener(this);

 

@Override
public void onClick(View v) {
  switch (v.getId()) {
    case R.id.btn:
    break;
  default:
   break;
  }
}

----------------------------------------------------------------------------------------------

▼クリック(リスト)
ListView lv = (ListView)getActivity().findViewById(R.id.listview);
lv.setOnItemClickListener(this);

 

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  switch (parent.getId()) {
    case R.id.listview:
      ListView lv = (ListView)parent;

                      //指定したリスト取得
      String title = (String)lv.getItemAtPosition(position);

       //チェックする(android:choiceModeを定義している場合)
      lv.setItemChecked(position, true);

                     //チェックをはずす(android:choiceModeを定義している場合)

                     lv.setItemChecked(position, false);

      break;
    default:
      break;
  }
}

----------------------------------------------------------------------------------------------

▼長押し(リスト)
ListView lv = (ListView)getActivity().findViewById(R.id.listview);
lv.setOnItemLongClickListener(this);

 

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

    //ListViewでonItemClick()とonItemLongClick()を両方定義している場合

   //trueにしないと「onItemClick」も動いてしまう
   return true;
}