【Android Studio】Javaで入手した値を共有する方法(MyGlobals)
Android StudioのJavaを使って入手した値を共有する方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
最初に
今から説明するコードには過去に説明した画面移動する方法の技術を使っておりますので良ければ見てみてください。
AndroidManifestの設定
最初にAndroidManifestに入力するコードです。
「<application~</application>」内に入力してください。
android:name=".MyGlobals"
画面の追加
次に移動先になる画面を追加していきます。左側にある「1:プロジェクト」内にある「app」内にある上の「java」内にある一番上の「com.example.myapplication」を右クリックしてください。「新規」内の「アクティビティ」から「空白のアクティビティ」を選び、「アクティビティ名」を決め、「完了」を押してください。今回は「MainActivity2」と入力してください。すると新しくjavaとlayoutが追加されます。
MyGlobalsの追加
次に値を共有するために使うjavaクラスを追加します。左側にある「1:プロジェクト」内にある「app」内にある上の「java」内にある一番上の「com.example.myapplication」を右クリックしてください。「新規」内の一番上にある「javaクラス」を選び、名前を「MyGlobals」にして「Enter」を押してください。すると新しくjavaが追加されます。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。ここまでは追加したlayoutにも行ってください。
「MainActivity」のlayoutの「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="入力してください"
android:textSize="32sp" />
<Button
android:id="@+id/buttonSecond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="MainActivity2へ"
android:textSize="32sp" />
「MainActivity2」のlayoutにはこちらを入力してください。
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="表示ボタンを押して下さい"
android:textSize="32sp" />
<Button
android:id="@+id/buttonShow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="表示"
android:textSize="32sp" />
<Button
android:id="@+id/buttonFinish"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="終了"
android:textSize="32sp" />
Javaの設定
最後にメインであるJavaに入力するコードです。「MyGlobals」のjavaクラスに入力してもらいたい箇所が3か所あります。
1か所目は「package com.example.myapplication;」の下に書いてください。
import android.app.Application;
2か所目は「public class MyGlobals」の後で、「extends Application」と入力してください。
3か所目は2か所目で入力した「public class MyGlobals extends Application {}」の{}内に書いてください。
String editText1Str;
「MainActivity」のjavaクラスに入力してもらいたい箇所が2か所あります。
1か所目は「public class MainActivity extends AppCompatActivity {」の下に書いてください。
MyGlobals myGlobals;
2か所目は「setContentView(R.layout.activity_main);」の下に書いてください。
myGlobals = (MyGlobals) this.getApplication();
findViewById(R.id.buttonSecond).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText et1=findViewById(R.id.editText1);
myGlobals.editText1Str=et1.getText().toString();
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
}
);
移動先のjavaクラスに入力してもらいたい箇所が2か所あります。
1か所目は「public class MainActivity2 extends AppCompatActivity {」の下に書いてください。
MyGlobals myGlobals;
2か所目は「setContentView(R.layout.activity_main);」の下に書いてください。
myGlobals = (MyGlobals) this.getApplication();
findViewById(R.id.buttonShow).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView tv2=findViewById(R.id.textView2);
tv2.setText(myGlobals.editText1Str);
}
}
);
findViewById(R.id.buttonFinish).setOnClickListener(
new View.OnClickListener(){
@Override
public void onClick(View view){
finish();
}
}
);
実行すると「入力してください。」と表示されている入力フォームとボタンが表示されます。そこに好きな文字を入力してボタンを押すと移動先の画面に移動します。表示ボタンを押すと先ほど入力した文字が表示されるようになります。
まとめ
今回は、入手した値を共有する方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaで画面移動する方法
Android StudioのJavaを使って画面移動する方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
画面の追加
次に移動先になる画面を追加していきます。左側にある「1:プロジェクト」内にある「app」内にある上の「java」内にある一番上の「com.example.myapplication」を右クリックしてください。「新規」内の「アクティビティ」から「空白のアクティビティ」を選び、「アクティビティ名」を決め、「完了」を押してください。すると新しくjavaとlayoutが追加されます。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。ここまでは追加したlayoutにも行ってください。
1つ目のlayoutの「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:id="@+id/buttonSecond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="SecondActivity"
android:textSize="32sp" />
2つ目のlayoutにはこちらを入力してください。
<Button
android:id="@+id/buttonFinish"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Finish"
android:textSize="32sp" />
Javaの設定
最後にメインであるJavaに入力するコードです。
1つ目のjavaの「setContentView(R.layout.activity_main);」の下に書いてください。
findViewById(R.id.buttonSecond).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
}
);
「Intent intent = new Intent(MainActivity.this,MainActivity2.class);」の()内は(入力している画面.this,移動したい画面.class)となっています。
2つ目のjavaの「setContentView(R.layout.activity_main2);」の下に書いてください。
findViewById(R.id.buttonFinish).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
}
);
「finish();」で戻ることができます。
入力が楽なので無名リスナーでやらせていただきました。「SecondActivity」ボタンを押すと画面移動して「Finish」ボタンが表示されます。そして「Finish」ボタンを押すと元に戻るという流れです。
まとめ
今回は、画面移動する方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【アニメ】オーバーロード(OVERLORD)1期~3期、アニメ勢による紹介&感想
今回はアニメ「オーバーロード」をNetflixで1期~3期まで見ましたので紹介&感想を話していきたいと思います。私はアニメ勢なので漫画に記述されている細かい設定などは知らいないですが、アニメ勢ならではの視点でこのアニメの魅力を伝えていけたらなと思います。
オーバーロードとは?
このアニメは異世界転生系アニメで、自分がプレイしていたゲームの世界に転生してしまい、自分が育て上げたキャラ「モモンガ」(異業種で最高位のマジックキャスター)として、感情を持ったNPC達とともに元のゲームと異なる世界で支配者としての威厳を保ちつつ、他のプレイヤーを探すため奮闘していく物語です。
オーバーロードの魅力
このアニメの魅力は、3つほどあると感じました。
- 普通の人間だった主人公が突然支配者として振る舞わなければいけないくなり、悪戦苦闘しているところです。NPCたちは主人公を完璧な存在だと思い込んでおり、主人公が行う行動・発言には必ず裏があると深読みし、勝手に行動しまういます。しかしその深読みに主人公は全く気付いておらず、計画を説明されて初めてそのことを知り、知ったかぶりをするのですがそれがとにかく面白いのです。まさかその行動がこんなにも大きな計画のきっかけになっているなんてと、主人公とともに驚き、笑えてしまいます笑。
- 個性豊かなNPCたちの設定が少しずつ明らかになるところです。漫画を読んでいないためどこまで漫画では説明されているかわかりませんが、アニメだとNPCについての説明があまりありません。しかし物語が進んでいくとキャラの性格や設定が少しずつ分かっていき、魅力に気づくことができます。少し頭が悪かったり、信念を曲げなかったり、変態だったりと人間味のあるところが面白く、かっこよく、かわいいです。人間ではありませんが笑。
- 主人公及びNPCが人間ではないところです。私たちは人間なので人間としての常識があります。しかしこのアニメのキャラクター達は異業種のため、私たちの常識が通用しません。主人公は元は人間ですが今は心も体もアンデットと化しているため、「殺すことが最大の慈悲である」と本気で考えているようです。残酷ですが、その圧倒的な強者ぶりがなかなか癖になってしまいます笑。
オーバーロード1期~3期の感想
ここからはアニメのネタバレになってしまうことがありますので注意してください。
見終わって一番最初に思ったことは「続きが早く見たい」です。国を手に入れ、目標が達成されたので次に何をするのかとても気になってしまいます。伏線らしき発言も何度かあったのでどこでそれらが回収されるのかとても楽しみです。
このアニメには個性豊かなキャラクターが出てきますが、その中でも私は「セバス」がとても好きです。アインズ様への裏切り行為と思われてもツアレを助けたり、クライムに稽古をつけてあげたりと人に対してとても優しいですし、6腕のボスを倒した後、「私の方が少し強かった」と、謙遜のような発言が面白く、かっこいいなと思います。これからも「困っている人がいたら助けるのは当たり前」の信念を持っていてほしいです。
1期前半で出てきたカルネ村がこれからどうなっていくのかとても楽しみです。ゴブリン将軍の角笛で召喚されたゴブリン軍隊はエンリの支配下にあります。あれだけの戦力があのシーンだけの登場とは考えにくいのでこれからどのような活躍をするのか気になります。あとアンリとンフィーレアが結婚するのであれば、結婚式を個人的にはしてほしいです。
1期中盤、クレマンティーヌ戦はとてもよかったです。少し胸糞展開もありましたが、それのおかげでアインズ様が勝った時の喜びはとても大きかったです。英雄の領域に達したと言っていたクレマンティーヌを腕の力だけで殺す、あの圧倒的感は何とも言えない興奮がありました。
1期後半でのシャルティア戦はかっこよかったです。最後の目は気になりますが、アインズ様の全力を見ることができました。敵対した原因は敵の報告シーンがあったためなんとなくわかりましたが今後も味方が敵対する可能性が出てくると思うと不安ではありますが楽しみでもあります。
2期前半のリザードマンは面白かったです。コキュートスにダメージを与えられなかったですが、血を使い、滑らせるところは「お!!」となりました。コキュートスに学ばせたということは今後コキュートスが戦略を考え、勝つシーンが見れる伏線になっているのではないかと思うと楽しみです。リザードマンの恋愛はキュンキュンというより笑いがこみ上げてきましたね笑
2期中盤の8本指戦は私の大好きなセバスがメインになっており、大好きです。セバスは優しくカッコいいですし、ツアレはかわいいですし、もう最高です。クライムの成長も見られました。
2期後半のヤルダバオト登場はワクワクしました。戦闘シーンはカッコいいですし、イビルアイを騙すために頑張っているのが面白いです。私はアインズ様側に感情移入しているのでエントマがやられてしまっている時には腹が立ちました。
3期前半ではまたカルネ村の事件が起きていました。王子様にとても腹が立っていたので最後に馬鹿にしていたゴブリンにやられていたのはスッキリしました。
3期中盤のナザリックに盗賊が入ってくるのは色々なキャラが見れてよかったです。久しぶりにハム助が出てきたと思ったら拷問をする化け物やゴキブリの王様?など登場し、これからがまた楽しみになりました。
3期後半の戦争は有名ですよね。あの子ヤギたちはホントにヤバすぎです。皇帝ジルクニフが想定していた10倍ほどの実力を見せていくアインズ様、最高です。あそこでガゼフが死んでしまったのは少し悲しかったです。
まとめ
今回はオーバーロードについ話させていただきました。このアニメはまだまだ話が続きそうなので続編がとても楽しみでなりません。話が難しかったり、伏線が色々なところに散りばめられていたりしているのでこのアニメは絶対に見返すべきだと思います。必ず新しい発見が見つかるはずです。ダークな世界観なので苦手と思ってしまう人もいるかもしれませんが笑えてしまうところも多くありとても面白いのでぜひ見ていってください。
【Android Studio】Javaで無名リスナーの宣言方法
Android StudioのJavaを使って無名リスナーの宣言方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="無名クラス:ボタン1" />
無名リスナーの場合は、id名が必須なので「android:id="@+id/button"」をボタンごとに宣言してください。
Javaの設定
最後にメインであるJavaに入力するコードです。
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "無名クラス:ボタン1が押されました。", Toast.LENGTH_LONG).show();
}
}
);
ボタンが押されたらToastが表示されるようにしました。
無名リスナーの場合は、入力しなければいならない場所が1か所で済むためとても分かりやすく、よく使われます。これは覚えておくと良いでしょう。
まとめ
今回は、無名リスナーの宣言方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaでリスナーの宣言方法
Android StudioのJavaを使ってリスナーの宣言方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="リスナー:ボタン1"
android:textSize="32sp" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="リスナー:ボタン2"
android:textSize="32sp" />
リスナーの場合は、id名が必須なので「android:id="@+id/button"」をボタンごとに宣言してください。
Javaの設定
最後にメインであるJavaに入力するコードです。入力してもらいたい場所が3か所あります。
「public class MainActivity extends AppCompatActivity {」内の「{」の前に「AppCompatActivity implements View.OnClickListener」を入力してください。
「setContentView(R.layout.activity_main);」の下に書いてください。
Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(this);
Button btn2 = (Button) findViewById(R.id.button2);
btn2.setOnClickListener(this);
ボタンを宣言しています。
「protected void onCreate(Bundle savedInstanceState) {}」の外に書いてください。
@Override
public void onClick(View v) {
if (v.getId() == R.id.button1) {
Toast.makeText(this, "リスナー:ボタン1が押されました。", Toast.LENGTH_SHORT).show();
}
if (v.getId() == R.id.button2) {
Toast.makeText(this, "リスナー:ボタン2が押されました。", Toast.LENGTH_SHORT).show();
}
}
ボタンが押されたらToastが表示されるようにしました。
リスナーの場合は、if文を使い押されたボタンがどれなのか、比較してから処理を行うため少し不便です。しかし知識として持っていくことは大切なのでぜひ覚えていってください。
まとめ
今回は、リスナーの宣言方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaでプロパティの宣言方法
Android StudioのJavaを使ってプロパティの宣言方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickButton1"
android:text="プロパティ:ボタン1"
android:textSize="32sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onClickButton2"
android:text="プロパティ:ボタン2"
android:textSize="32sp" />
プロパティの場合はid名を決めるのではなく、代わりに「android:onClick="onClickButton"」を宣言しなければなりません。
Javaの設定
最後にメインであるJavaに入力するコードです。
「protected void onCreate(Bundle savedInstanceState) {}」の外に書いてください。
public void onClickButton1(View v) {
Toast.makeText(this, "プロパティ:ボタン1が押されました。", Toast.LENGTH_SHORT).show();
}
public void onClickButton2(View view) {
Toast.makeText(this, "プロパティ:ボタン2が押されました。", Toast.LENGTH_SHORT).show();
}
エラーが出ますが、エラーに対して「alt + enter」で消すことができます。
ボタンが押されたらToastが表示されるようにしました。
プロパティの場合は、layoutでid以外のものを宣言しないといけなく少し不便なのであまり使われることはありません。しかし知識として持っていくことは大切なのでぜひ覚えていってください。
まとめ
今回は、プロパティの宣言方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaで通知する方法
Android StudioのJavaを使って通知を送る方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ON"
android:textSize="42sp" />
Javaの設定
最後にメインであるJavaに入力するコードです。入力してもらいたい場所が2か所あります。
「setContentView(R.layout.activity_main);」の下に書いてください。
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
createNotificationChannel();
}
}
);
「createNotificationChannel」を呼び出しています。
「protected void onCreate(Bundle savedInstanceState) {}」の外に書いてください。
private void createNotificationChannel() {
String channelId = "CHANNEL_ID";
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);
builder.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle("name1")
.setContentText("description1")
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String name = "name2";
String description = "description2";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(channelId, name, importance);
channel.setDescription(description);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.createNotificationChannel(channel);
}
final int notify_id = 123456;
NotificationManagerCompat.from(this)
.notify(notify_id, builder.build());
}
「name1」にタイトルを、「description1」に内容を入力してください。
実行すると「NO」ボタンが表示されます。押すとアラームが鳴り、上に「-」が表示されるので押してみると通知の内容が見ることができます。
まとめ
今回は、通知する方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaで任意の間隔で処理を繰り返す方法
Android StudioのJavaを使って任意の間隔で処理を繰り返す方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:id="@+id/timerStartButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:textSize="42sp" />
<Button
android:id="@+id/timerCancelButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:textSize="42sp" />
Javaの設定
最後にメインであるJavaに入力するコードです。入力してもらいたい場所が3か所あります。
「public class MainActivity extends AppCompatActivity {」内の「AppCompatActivity」を「FragmentActivity」に変更してください。
「public class MainActivity extends FragmentActivity {」の下に書いてください。
Timer timer;
private final String LOG_TAG = "MainActivity : ";
変数などの宣言をしています。
「setContentView(R.layout.activity_main);」の下に書いてください。
timer = new Timer();
Button timerStartButton
= findViewById(R.id.timerStartButton);
Button timerCancelButton
= findViewById(R.id.timerCancelButton);
timerStartButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.scheduleAtFixedRate(
new TimerTask() {
@Override
public void run() {
Log.i(LOG_TAG, "loop");
}
}, 100, 20000);
}
});
timerCancelButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
timer.cancel();
Log.i(LOG_TAG, "Timer canceld.");
timer = new Timer();
}
});
エラーが出ますが、エラーに対して「alt + enter」で消すことができます。
繰り返す間隔は自分で決めることができます。今回は20秒間隔にしてみました。
繰り返していることがわかるよう、logに「loop」と表示されるようになっていますので、実行したら下の方にある「logcat」を押して確認してください。
実行すると「Start」と「Cancel」ボタンが表示されます。「Start」を押すと繰り返しが実行されます。「Cancel」を押すと繰り返しが停止します。
まとめ
今回は、任意の間隔で処理を繰り返す方法を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】Javaでカウントダウンをする方法
Android StudioのJavaを使ってカウントダウンをする方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
今回はAndroidManifestに入力するコードはありませんので入力しないで大丈夫です。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="30秒"
android:textSize="50sp" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="start"
android:textSize="32sp" />
Javaの設定
最後にメインであるJavaに入力するコードです。
「setContentView(R.layout.activity_main);」の下に書いてください。
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
CountDownTimer countDownTimer = new CountDownTimer(30000, 100) {
@Override
public void onTick(long millisUntilFinished) {
int time = (int) millisUntilFinished / 1000;
((TextView) findViewById(R.id.textview1)).setText(time + "秒");
}
@Override
public void onFinish() {
((TextView) findViewById(R.id.textview1)).setText("End");
}
}.start();
}
}
);
実行すると「start」ボタンが表示され、押すとカウントダウンが始まります。カウントが終了すると「End」が表示されます。
まとめ
今回は、カウントダウンを説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
【Android Studio】JavaでWi-Fiの名前(SSID)を所得する方法
Android StudioのJavaを使ってWiFiの名前(SSID)を取得する方法を説明していきたいと思います。どのAPIレベルにまで対応しているかわかりませんがAPIレベル28では実行することができました。
AndroidManifestの設定
まず初めにAndroidManifestに入力するコードです。なぜそれが必要なのか気になる人は文字列をコピペして検索してもらうとわかります。
「package="com.example.myapplication">」の下に書いてください。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"
tools:ignore="ProtectedPermissions" />
「<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"
tools:ignore="ProtectedPermissions" />」にエラーが出ますが、エラーに対して「alt + enter」を押して「抑制」を押すことで解決されます。
layoutの設定
次にlayoutに入力するコードです。上から2行目にある「androidx.constraintlayout.widget.ConstraintLayout」だけ消去して代わりに「LinearLayout」を入力します。
「tools:context=".MainActivity"」と「>」の間で改行し、「android:orientation="vertical"」を入力してください。
「TextView~/>」は使わないので消去し、代わりにこちらを入力してください。
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="Get WiFi"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/TextView1" />
Javaの設定
最後にメインであるJavaに入力するコードです。入力してもらいたい場所が2か所あります。
「public class MainActivity extends AppCompatActivity {」の下に書いてください。
TextView textView;
WifiManager wifiManager;
WifiInfo connection;
String display;
変数などの宣言をしています。
「setContentView(R.layout.activity_main);」の下に書いてください。
textView = findViewById(R.id.TextView1);
if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_BACKGROUND_LOCATION)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION,},
1000);
}
findViewById(R.id.button1).setOnClickListener(
new View.OnClickListener(){
@Override
public void onClick(View view){
wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
connection = wifiManager.getConnectionInfo();
display = "SSID :" + connection.getSSID();
textView.setText(display);
}
}
);
エラーが出ますが、エラーに対して「alt + enter」で消すことができます。
if文では、アプリがWi-Fi所得に必要な権限を持っていない時に表示されるものなので実行時には「ALLOW」を押してください。
実行すると「GET WIFI」ボタンが表示され、押すと下に今現在接続しているWi-Fi名(SSID)が表示されます。
まとめ
今回は、Wi-FiのSSIDの取得を説明していきました。私も作り直しながら説明していったのでエラーや、入力ミスはないようにできていると思います。この方法で取得できなかった場合はコメントください。できる限り対処していきたいと思います。
アプリ開発は調べることがほとんどです。私はこのプログラムを作るまでにたくさんのサイトを見て回ることになってしまいました。皆さんには同じ思いをしてほしくないのでこのプログラムが役に立つことを祈っています。
これからよろしくお願いします!
初めましてyukinutと申します。これから毎日書いていきますのでよろしくお願いします。
目次
-
最初に
私は情報系の専門学校に通っている学生です。毎日学校に通い、友達と遊び、実家で家族と暮らしている凡人です。そんな私が、学んだこと、感じたこと、行動したことなどをこれからメモ代わりにブログにしていきたいと思います。皆さんのためになる内容になるかわかりませんが、興味のある内容があれば見ていってください。
-
記事の種類
これから発信していきたい内容は大きく分けて3つあります。
-
学校の内容 私は今、情報系の専門学校に通っている学生です。メモを取らいないとすぐに忘れてしまような内容が多くあるのにも関わらずこれまで全くメモを取ってこなかったので何度も同じところに詰まり、もう一度調べるを繰り返して困っておりました。なので学校で習った内容を理解し、自分の技術を向上させるため、学習内容を記事にしていきます。
- 自己学習 私は色々なことに興味は持つのですが、続かなかったり忘れたりしてしまうことが多々ありました。せっかく興味を持ち、調べているのに忘れてしまったら無駄になってしまうので、自身が興味を持った分野の学習内容などを記事にしていきます。
- 趣味 私はゲーム・アニメ・映画・ドラマなど好きなのですが、その面白さを他者に伝えることがあまり得意ではありません。せっかく面白いと思っても伝えることができないと悲しいので、伝える力の向上と、自分が何を見たのかの記録のために記事にしていきます。
-
始める理由
このブログを書こうと思ったのは「私は覚えることがとても苦手である」ということを理解したからです。覚えれないのであればデータに残せばいいと考え、タイピング力や文章力にもなるのでブログをはじめようと決意しました。
-
まとめ
学校の内容・自己学習・趣味、主にこの3点をこれから記事にしていきたいと思います。メモを取ることが習慣になれば知識が増えていき、人生を豊かにすることができるので、毎日続けていきます。文章がおかしいところがあるかもしれませんが、少しずつ直していきたいと思います。これからよろしくお願いします!