サムネイルを recyclerView で表示し、seekbar と連動させる。
そして、アイコンを並べて機能別に処理をさせる。その基本部分の実装と処理分岐を記述する。
実際は、mainActivity でOnClickListener() に実装、ページクラスに処理部分を記述。
【activity_main.xml】
略
< LinearLayout
android:id="@+id/icon_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
< ImageButton
android:id="@+id/icon_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_1" />
< ImageButton
android:id="@+id/icon_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_2" />
< ImageButton
android:id="@+id/icon_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_3" "/>
</ LinearLayout>
略
【MainActivity.java】
略
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton ib = (ImageButton)findViewById( R.id.icon_1 );
ib.setOnClickListener( iconButtonClick );
ib = (ImageButton)findViewById( R.id.icon_2 );
ib.setOnClickListener( iconButtonClick );
ib = (ImageButton)findViewById( R.id.icon_3);
ib.setOnClickListener( iconButtonClick );
略
}
// 処理部分は別クラスにあっても問題なさそう。別クラスでは、public で宣言か、メソッドで受け渡し。
private View.OnClickListener iconButtonClick = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch ( v.getId() ) {
case R.id.icon_1:
// 処理
break;
case R.id.icon_2:
break;
case R.id.icon_3:
break;
}
}
};
略
実装部分と処理部分を分けるとスッキリする。
まだ、onClick()が呼ばれる条件?範囲?グループ?よく理解できていない。クリックされたら全てが1つのonClick()で呼ばれる のではなさそう。う~ん、今回は3つのボタンクリックをグループとして実装した。この3つはクリックされると、ここのonClick()が呼ばれる。みたい。
個々に実装したら、それぞれのonClick()が呼ばれる?。Activity で implements View.OnClickListener を使うとまた違う動作となる。面倒くさい。
とりあえず、v.getID() で処理を分岐させたいので今回の手法を使う。実装と処理を別クラスに記述できるから都合が良い。