フリック入力トレーニングアプリの作成
動作確認
フリック入力トレーニングアプリ pic.twitter.com/Y7AYZOOPoy
— いまむー (@Imamuuu5) December 18, 2022
ソースコード
カラー
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#0080d2</color>
<color name="colorPrimaryDark">#0080d2</color>
<color name="colorAccent">#0080d2</color>
</resources>
レイアウト
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:gravity="center"
android:background="@color/colorPrimary"
android:text="home"
android:textSize="24sp"
android:textColor="#FFF"/>
<Button
android:id="@+id/enter_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="スタート" />
</RelativeLayout>
layout_gamen2.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/mondai"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/name"
android:text="第1問"
android:textSize="24sp"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="単語"
android:paddingTop="10dp"
android:layout_marginBottom="5dp"
android:textSize="24sp"/>
<EditText
android:id="@+id/num2_edit"
android:layout_width="350dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:hint="入力"
android:textSize="24sp" />
<Button
android:id="@+id/complete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/num2_edit"
android:layout_alignBottom="@id/num2_edit"
android:text="完了" />
</RelativeLayout>
java
MainActivity.java
package com.example.nyuryoku;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button enterBtn = findViewById(R.id.enter_btn);
enterBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, Gamen2Activity.class); // 別のアクティビティに遷移するための情報
startActivity(intent); // intentで指定したアクティビティを起動
}
});
}
}
Gamen2Activity.java
package com.example.nyuryoku;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Button;
import android.widget.Toast;
import android.content.Intent;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class Gamen2Activity extends AppCompatActivity {
EditText num2Edit; // 文字入力用のView変数
private TextView Mondai;
private TextView Name;
private Button completeBtn;
int c=0;
int monodai_num=1;
String a ="あ,か,さ,た,な,は,ま,や,ら,わ"; //10問
String b[] = a.split(",");
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_gamen2); // 画面にlayout_gamen2を設定
num2Edit = findViewById(R.id.num2_edit); // 画面にnum2Editを設定
Name = findViewById(R.id.name); // 画面にNameを設定
Button completeBtn = findViewById(R.id.complete_btn); // 画面にcompleteBtnを設定
Mondai = findViewById(R.id.mondai); // 画面にMondaiを設定
System.out.println(b[b.length-1]);
Name.setText(String.valueOf(b[c]));
completeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(num2Edit.getText().toString().equals(b[c])&&c==9){
Toast.makeText(Gamen2Activity.this,"終了",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Gamen2Activity.this, MainActivity.class); //スタート画面に戻る
startActivity(intent); // intentで指定したアクティビティを起動
}else if(num2Edit.getText().toString().equals(b[c])) {
Toast.makeText ( Gamen2Activity.this, "正解", Toast.LENGTH_SHORT ).show ();
c = c + 1;
num2Edit.setText ( String.valueOf ( "" ) );
Name.setText ( String.valueOf ( b[c] ) );
monodai_num = c + 1;
Mondai.setText ( String.valueOf ( "第" + monodai_num + "問" ) );
}else{
Toast.makeText(Gamen2Activity.this,"不正解",Toast.LENGTH_SHORT).show(); return;
}
}
});
}
}
マニフェスト
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.nyuryoku">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Gamen2Activity" />
</application>
</manifest>