-1

エラーが発生していないにもかかわらず、「残念ながら appname は停止しています」というメッセージが表示されていました。あなたが完全に理解できるように、私はあなたにコードを示すことができます.

ここに ColorMixings.java があります

package com.example.colormixings;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.ImageButton;

public class ColorMixings extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.color_mixings);
final CheckBox chkRed = (CheckBox) findViewById(R.id.checkBox1);
final CheckBox chkBlue = (CheckBox) findViewById(R.id.checkBox2);
final CheckBox chkYellow = (CheckBox) findViewById(R.id.checkBox3);
ImageButton imgMove = (ImageButton) findViewById(R.id.imageButton1);

imgMove.setOnClickListener(new onClickListener() {

@Override
public void onClick(View arg0) {
if(chkRed.isChecked())
{
startActivity(new Intent(ColorMixings.this,Red.class));
}
else if(chkBlue.isChecked())
{
startActivity(new Intent(ColorMixings.this, Blue.class));
}
else if(chkYellow.isChecked())
{
startActivity(new Intent(ColorMixings.this, Yellow.class));
}
else if(chkRed.isChecked() && chkYellow.isChecked())
{
startActivity(new Intent(ColorMixings.this, Orange.class));
}
else if(chkRed.isChecked() && chkBlue.isChecked())
{
startActivity(new Intent(ColorMixings.this, Violet.class));
}
else if(chkBlue.isChecked() && chkYellow.isChecked())
{
startActivity(new Intent(ColorMixings.this, Green.class));
}
else
{
finish();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.color_mixings, menu);
return true;
}
}

Red.java のコードは次のとおりです。他のすべてのクラスは Red.java と同じなので、含めませんでした

package com.example.colormixings;


import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

public class Red extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageButton imgBack = (ImageButton) findviewById(R.id.imageButton1);
imgBack.setOnClickListener(new onClickListener() {

@Override
public void onClick(View arg0) {
startActivity(new Intent(Red.this, ColorMixings.class)
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.red, menu);
return true;
}
}

AndroidManifest.xml のコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<manifest xlmns:android="http://schemas.android.com/apk/res/android"
package="com.example.colormixings"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk
android:minSdkVersin="8"
android:targetSdkVersion="17"/>

<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@string/AppTheme"
android:icon="@drawable/painticon">
<activity
android:name="com.example.colormixings.ColorMixings"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity>
android:name="com.example.colormixings.Red"
android:label="@string/title_activity_red">
</activity>
<activity>
android:name="com.example.colormixings.Blue"
android:label="@string/title_activity_blue">
</activity>
<activity>
android:name="com.example.colormixings.Yellow"
android:label="@string/title_activity_yellow">
</activity>
<activity>
android:name="com.example.colormixings.Green"
android:label="@string/title_activity_green">
</activity>
<activity>
android:name="com.example.colormixings.Orange"
android:label="@string/title_activity_orange">
</activity>
<activity>
android:name="com.example.colormixings.Violet"
android:label="@string/title_activity_violet">
</activity>
</application>

</manifest>
4

1 に答える 1

2

logcat がなければ、これが現在の問題であるかどうかはわかりませんが、そうでない場合はすぐに問題になるでしょう。あなたRedが持っている

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ImageButton imgBack = (ImageButton) findviewById(R.id.imageButton1);  // problem line
        imgBack.setOnClickListener(new onClickListener() {

ImageButtonそれを含むを膨らませずに初期化しようとしてlayoutいます。したがって、これNPEを設定しようとすると、次の行が表示されますonClickListener。を初期化する前に、ImageButtonを呼び出す必要がありますsetContentView()。何かのようなもの

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.layoutWithTheButton);   // you are forgetting this line
      ImageButton imgBack = (ImageButton) findviewById(R.id.imageButton1);
      imgBack.setOnClickListener(new onClickListener() {
于 2013-09-06T16:05:37.480 に答える