質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

756閲覧

漢字検索アプリを作りたい

delta9kid

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2021/10/28 02:52

漢字を入力すると、それが小学校何年生で習う文字なのかを表示させるアプリを作りたいです。

エラーメッセージは表示されていないのですが、onbuttonを押しても反応がありません。想定していた正常な反応は、
"川" "中" "一"
のどれかの漢字を入力すると、"一年生で習う漢字です"というメッセージが表示されるはずでした。

発生している問題・エラーメッセージ

エラーメッセージは表示されていません

該当のソースコード

java

1 2MainActivity.java 3package com.websarva.wings.android.plusapp; 4 5import androidx.appcompat.app.AppCompatActivity; 6 7import android.os.Bundle; 8import android.view.View; 9import android.widget.EditText; 10import android.widget.TextView; 11 12import java.util.Arrays; 13 14 15public class MainActivity extends AppCompatActivity { 16 17 EditText eT1; 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 23 eT1 = (EditText)findViewById(R.id.eT1); 24 } 25 26 27 public void onButton(View view){ 28 29 30 String str1 = eT1.getText().toString(); 31 32 String[] str2 = getResources().getStringArray(R.array.first); 33 34 if (str1.equalsIgnoreCase(Arrays.toString(str2))) 35 36 ((TextView)findViewById(R.id.tvAns)).setText("一年生で習う漢字です"); 37 38 39 } 40 41 public void onClear(View view){ 42 ((EditText)findViewById(R.id.eT1)).getText().clear(); 43 44 ((TextView)findViewById(R.id.tvAns)).setText("Answer"); 45 } 46 47 48} 49 50 51strings.xml 52<resources> 53 <string name="app_name">漢字検索システム</string> 54 <string-array name="first"> 55 <item></item> 56 <item></item> 57 <item></item> 58 59 </string-array> 60</resources> 61 62 63 64

試したこと

MainActivity.java
public void onButton(View view){

//Edit⇒String String str1 = eT1.getText().toString(); String str2 = getResources().getString(R.string.first); if (str1.equalsIgnoreCase(str2)) ((TextView)findViewById(R.id.tvAns)).setText("三年生で習う漢字です"); }

strings.xml
<string name="first"></string>

以上のコードでは、"川"の文字を入力するとうまくいきました。str2にstring-arrayを入れるとうまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

Android Studio Arctic Fox | 2020.3.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

delta9kid

2021/10/28 04:04

回答いただきありがとうございます。 以下のソースコードにあるclickのボタンのことを、onButtonと表記してしまいました。雑な説明で申し訳ありません。 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <EditText android:id="@+id/eT1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="漢字を入力してください"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onButton" android:text="click" /> <TextView android:id="@+id/tvAns" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Answer" android:textSize="36sp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClear" android:text="clear" /> </LinearLayout> 困っている部分は String str1 = eT1.getText().toString(); String[] str2 = getResources().getStringArray(R.array.first); if (str1.equalsIgnoreCase(Arrays.toString(str2))) ((TextView)findViewById(R.id.tvAns)).setText("一年生で習う漢字です"); このコードと次のコード String str1 = eT1.getText().toString(); String str2 = getResources().getString(R.string.first); if (str1.equalsIgnoreCase(str2)) ((TextView)findViewById(R.id.tvAns)).setText("三年生で習う漢字です"); この二つにどのような差があるかというものです。(2つ目のコードでは、うまく起動できました。) 私事ではありますが、androidstudio、javaを触って一週間も経過しておりません。自分なりに調べているつもりではあるのですが、本当に基本的な部分で理解の欠落があると思われます。ご不便おかけしますが、よろしくお願いします。
hoshi-takanori

2021/10/28 04:20

str2 は文字列の配列なので、入力された文字列と直接比べることはできません。初心者さんとのことなので、まずは str2 の要素を一つ一つ取り出して比べるにはどうしたらいいか考えてみましょう。
jimbe

2021/10/28 05:11

コメントのための極短いコード以外は、 (レイアウト xml 等も)「該当のソースコード」でされていますようにマークダウン記法を用いて **ご質問を編集して** 追記してください。 その際、中に含めるのは実際にファイル内にあるものだけとし、ファイル名等は外に出してください。(動作確認する場合に間違いが無いようにコピペするためです。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問