以下のアプリを実行し、Buttonを押す(OnClickを呼ぶ)とクラッシュします。
MainActivity.java
Java
1package com.example.project1; 2 3import androidx.appcompat.app.AppCompatActivity; 4 5import android.net.Uri; 6import android.os.Bundle; 7import android.view.View; 8import android.widget.Button; 9import android.widget.TextView; 10import android.content.Intent; 11 12public class MainActivity extends AppCompatActivity { 13 14 private Button button; 15 private TextView textView; 16 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_main); 22 23 button = (Button)findViewById(R.id.button); 24 25 button.setOnClickListener(new View.OnClickListener(){ 26 @Override 27 public void onClick(View view){ 28 URLRequest urlRequest = new URLRequest(); 29 //テキストボックスから取得 30 31 String BoxID = urlRequest.getstring(R.id.BoxIDText); 32 String Name = urlRequest.getstring(R.id.NameBoxText); 33 String Tags = urlRequest.getstring(R.id.TagsBoxText); 34 String Status = urlRequest.getstring(R.id.StatusBoxText); 35 36 } 37 }); 38 } 39} 40
継承したURLRequest .java
Java
1package com.example.project1; 2import android.widget.EditText; 3 4public class URLRequest extends MainActivity { 5 protected EditText editText; 6 7 public String getstring(int id){ 8 editText = findViewById(id); 9 String parameter = editText.getText().toString(); // 10 editText.setText(""); //テキストをクリア 11 return parameter; 12 } 13}
activity_main.xml
XML
1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <LinearLayout 10 android:layout_width="match_parent" 11 android:layout_height="match_parent" 12 android:orientation="vertical" 13 tools:layout_editor_absoluteX="-34dp" 14 tools:layout_editor_absoluteY="16dp"> 15 16 <TextView 17 android:id="@+id/BoxID" 18 android:layout_width="match_parent" 19 android:layout_height="wrap_content" 20 android:text="BoxID" /> 21 22 <EditText 23 android:id="@+id/BoxIDText" 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:ems="10" 27 android:inputType="textPersonName" 28 android:text="Name" /> 29 30 <TextView 31 android:id="@+id/Name" 32 android:layout_width="match_parent" 33 android:layout_height="wrap_content" 34 android:text="Productname" /> 35 36 <EditText 37 android:id="@+id/NameBoxText" 38 android:layout_width="match_parent" 39 android:layout_height="wrap_content" 40 android:ems="10" 41 android:inputType="textPersonName" 42 android:text="Name" /> 43 44 <TextView 45 android:id="@+id/Tags" 46 android:layout_width="match_parent" 47 android:layout_height="wrap_content" 48 android:text="Tags" /> 49 50 <EditText 51 android:id="@+id/TagsBoxText" 52 android:layout_width="match_parent" 53 android:layout_height="wrap_content" 54 android:ems="10" 55 android:inputType="textPersonName" 56 android:text="Name" /> 57 58 <TextView 59 android:id="@+id/Status" 60 android:layout_width="match_parent" 61 android:layout_height="wrap_content" 62 android:text="Status" /> 63 64 <EditText 65 android:id="@+id/StatusBoxText" 66 android:layout_width="match_parent" 67 android:layout_height="wrap_content" 68 android:ems="10" 69 android:inputType="textPersonName" 70 android:text="Name" /> 71 72 <Button 73 android:id="@+id/button" 74 android:layout_width="match_parent" 75 android:layout_height="wrap_content" 76 android:text="Send" /> 77 </LinearLayout> 78 79</androidx.constraintlayout.widget.ConstraintLayout>
原因として考えらえること
もともとは一つのクラス(MainActivity)の中にすべてコードを書いていましたが、見た目が悪いので継承させたURLRequest クラスを追加しました。
追加したところ、アプリがクラッシュするようになったのでおそらくそこが原因として考えられます。
もう3時間近く悩んでいて、調べても全くわかりません。
だいぶ丸投げですが、何が間違っているのかさえ分かりません。どなたか教えてください。
ツール
JDK8
Android3.5
です
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。