私は最初のAndroidアプリの作成に取り組んでいます。SendMessage
と呼ばれる別のアクティビティから呼び出されるアクティビティを開始しようとしていAskReport
ます。SOでこのような同様の質問を見たことがありますが、私の問題に一致するものは見つかりませんでした。
アクティビティのコードAskReport
は次のとおりです。
public class AskReport extends Activity
{
Button done;
RadioButton checkedRadioButton;
RadioGroup group;
EditText email, info;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ask_report);
done = (Button) findViewById(R.id.Report);
group = (RadioGroup) findViewById(R.id.radioGroup1);
checkedRadioButton = (RadioButton) findViewById(group.getCheckedRadioButtonId());
info = (EditText) findViewById(R.id.Info);
email = (EditText) findViewById(R.id.Email);
}
public void reportClick(View view){
Intent intent = new Intent(this, SendMessage.class);
/* Line1 */ intent.putExtra("sender_email", email.getText());
/* Line2 */ intent.putExtra("additional_info", info.getText());
/* Line3 */ intent.putExtra("checked_button",checkedRadioButton.getText());
startActivity(intent);
}
}
アクティビティのコードSendMessage
は次のとおりです。
public class SendMessage extends Activity
{
String message = "";
EditText message_to_send;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.send_message);
message_to_send = (EditText) findViewById(R.id.message_to_send);
Intent intent = getIntent();
message += intent.getStringExtra("sender_email");
message += intent.getStringExtra("additional_info");
message += intent.getStringExtra("checked_button");
message_to_send.setText(message);
}
}
AskReport
アクティビティでマークされた3行をコメントアウトすると、SendMessage
表示されるテキストはnullnullnull
(理解可能)ですが、アクティビティは正常に呼び出されます。
マニフェストでアクティビティエントリを正しくマークしました。
さらに、ここに表示されるlogcatメッセージも示します。
09-10 15:12:57.555: E/AndroidRuntime(1311): FATAL EXCEPTION: main
09-10 15:12:57.555: E/AndroidRuntime(1311): java.lang.IllegalStateException: Could not execute method of the activity
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.view.View$1.onClick(View.java:3591)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.view.View.performClick(View.java:4084)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.view.View$PerformClick.run(View.java:16966)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.os.Handler.handleCallback(Handler.java:615)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.os.Handler.dispatchMessage(Handler.java:92)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.os.Looper.loop(Looper.java:137)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.app.ActivityThread.main(ActivityThread.java:4745)
09-10 15:12:57.555: E/AndroidRuntime(1311): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 15:12:57.555: E/AndroidRuntime(1311): at java.lang.reflect.Method.invoke(Method.java:511)
09-10 15:12:57.555: E/AndroidRuntime(1311): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
09-10 15:12:57.555: E/AndroidRuntime(1311): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
09-10 15:12:57.555: E/AndroidRuntime(1311): at dalvik.system.NativeStart.main(Native Method)
09-10 15:12:57.555: E/AndroidRuntime(1311): Caused by: java.lang.reflect.InvocationTargetException
09-10 15:12:57.555: E/AndroidRuntime(1311): at java.lang.reflect.Method.invokeNative(Native Method)
09-10 15:12:57.555: E/AndroidRuntime(1311): at java.lang.reflect.Method.invoke(Method.java:511)
09-10 15:12:57.555: E/AndroidRuntime(1311): at android.view.View$1.onClick(View.java:3586)
09-10 15:12:57.555: E/AndroidRuntime(1311): ... 11 more
09-10 15:12:57.555: E/AndroidRuntime(1311): Caused by: java.lang.NullPointerException
09-10 15:12:57.555: E/AndroidRuntime(1311): at com.example.safeworld.AskReport.reportClick(AskReport.java:44)
09-10 15:12:57.555: E/AndroidRuntime(1311): ... 14 more
09-10 15:13:00.725: I/Process(1311): Sending signal. PID: 1311 SIG: 9
android:onClick="XXXXXX"
また、対応するlayout.xmlに関数を配置しました。
これらの3行で何が問題になっているのかを理解するのを手伝ってください。助けてくれてありがとう!
編集:
これが私のask_report.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableLayout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/ask"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ask_report"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="24dp" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/road_accident"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/road_accident" />
<RadioButton
android:id="@+id/fire"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/fire" />
<RadioButton
android:id="@+id/theft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/theft" />
<RadioButton
android:id="@+id/other"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
android:text="@string/other" />
</RadioGroup>
<TextView
android:id="@+id/AddInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_detail" />
<EditText
android:id="@+id/Info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text" >
</EditText>
<TextView
android:id="@+id/AskEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enter_email"
android:layout_marginTop="10dp" />
<EditText
android:id="@+id/Email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress" />
<Button
android:id="@+id/Report"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/done"
android:onClick="reportClick" />
</TableLayout>