比較的順調に写経できていましたが、躓きました。P151です。リスト7.3で躓きました。本の内容では、
public class MenuListActivity extends AppCompatActivity{}というクラスを作るとありますが、これはjavaの書き方ではないですか?Kotlinではデフォルトでclassはpublicですし、extendsではなく:では無いでしょうかね?文はKotlinのようです。javaは文末が;で終わるはず。Kotlinでは、文末を;とすることも問題ないはずです。全体がjavaだとkotlinへAndroid Studioが変更してくれますが、ここでは駄目でした。
コードのサンプルがあるので見てみたら、ちょっと条件が違うようにも思いますが、上のclassに書く内容が通常のclass MainActvity : AppCompatActivituの中に直接書かれてました。若しかしたら、MainActivityの中にclassを作って、そのクラスのインスタンスを生成し、それを実行という手順もあるんでしょうか?分からないので、サンプルは最終的な答えです。途中の経過なので、自分は答えのサンプルから、その時点では関係なさそうな部分をコメントしてみました。
下の図の各要素の設定がMainActivityに書かれてあったので、関数にしてみたんですが、動くことは動きました。でもなんでmenuListがへんこうされてるんですかね?参照渡しということなですか?普通はインプリシットですか?例えばC#などであれば、int等はコピーが渡されるので、元は変更されない。但しオブジェクト、例えばクラスのインスタンスなどは参照が渡される筈です。kotlinは全てがオブジェクトでしたかね?それでですか?
選ばれたメニューから次の画面へ行くときに、値を渡す必要がありそう。それが下のようですが、今は必要なくしているので、すべてコメントしてます。
上の画面が実行画面です。クリックしても何も起きません。