核对表日志错误

时间:2016-04-06 05:25:43

标签: android

我的代码中存在错误,我不明白,当勾选复选框时应用程序关闭。

我正在尝试做的事情的简要总结。当按下复选按钮时,它会尝试查看已检查的清单,并在检查时添加1以进行评分。我根据收到的分数输出文字。

如果我有任何其他错误,请指出。还包括代码示例(使其更容易理解)。

04-06 06:15:44.601 20298-20298/xyz.ashraf.whoisdelasalle E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: xyz.ashraf.whoisdelasalle, PID: 20298
                                                                           java.lang.IllegalStateException: Could not find method onCheckboxClicked(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.widget.CheckBox with id 'concern'
                                                                               at android.view.View$DeclaredOnClickListener.resolveMethod(View.java:4485)
                                                                               at android.view.View$DeclaredOnClickListener.onClick(View.java:4449)
                                                                               at android.view.View.performClick(View.java:5204)
                                                                               at android.widget.CompoundButton.performClick(CompoundButton.java:122)
                                                                               at android.view.View$PerformClick.run(View.java:21153)
                                                                               at android.os.Handler.handleCallback(Handler.java:739)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

错误代码^^

package xyz.ashraf.whoisdelasalle;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;

/**
 * Created by Ashraf on 3/2/2016.
 */
public class check_Button extends Pop_sallian {
    // Connects The variable to an xml id


    TextView output = (TextView) findViewById(R.id.output);

    //sets the variable to 0
    int score = 0;

    public void onCheckboxClicked(View v){
        boolean checked = ((CheckBox) v).isChecked();
        // checks what checklists have been checked
        switch (v.getId()) {
            case R.id.concern:
                if (checked) {
                    score += 1;
                }
                break;
            case R.id.faith:
                if (checked) {
                    score += 1;
                }
                break;
            case R.id.respect:
                if (checked) {
                    score += 1;
                }
                break;
            case R.id.education:
                if (checked) {
                    score += 1;
                }
                break;
            case R.id.community:
                if (checked) {
                    score += 1;
                }
                break;
        }

        // adds the variables together to form a score

        if (score == 0) {
            output.setText("Come on! Get involved, your la sallian community needs you.");
        } else if (score == 1) {
            output.setText("Good start, keep going!");
        } else if (score == 2) {
            output.setText("Room to improve but doing good!");
        } else if (score == 3) {
            output.setText("Very good, others look up to you!");
        } else if (score == 4) {
            output.setText("Wow, you really are an inspiration");
        } else if (score == 5) {
            output.setText("Excellent! You're a leader in your la sallian community");
        } else {
            output.setText("Unknown");
        }
        // changes the output text based on score value
    }
}

^^检查清单和输出文本的代码^^

package xyz.ashraf.whoisdelasalle;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;

/**
 * Created by Ashraf on 1/27/2016.
 */
public class Pop_sallian extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.popwindow_sallian);

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        int width = dm.widthPixels;
        int height = dm.heightPixels;

        getWindow().setLayout((int)(width*.8),(int)(height*.6));
        //Creates a pop up window where the checklists are stored

        Button checkButton = (Button) findViewById(R.id.check);
        checkButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(Pop_sallian.this, check_Button.class));
            }
        }); // runs the check_Button.java to check what checklists have been checked.
        Button okButton = (Button) findViewById(R.id.okButton_sallian);
        okButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });// closes the pop up window
    }
}

^^包含检查按钮的代码(检查是否检查了检查表并依赖于输出文本)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<RelativeLayout
    android:layout_width="match_parent" android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Are you a Sallian?"
        android:id="@+id/textView7"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textSize="30sp"
        android:textColor="#000000" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Do you meet the following prerequisites, if you do you may be a Sallian"
        android:id="@+id/textView8"
        android:layout_below="@+id/textView7"
        android:layout_centerHorizontal="true"
        android:textSize="20sp"
        android:textColor="#000000" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Are you concerened for the poor and Social Justice?"
        android:id="@+id/concern"
        android:textSize="18sp"
        android:layout_below="@+id/textView8"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="10dp"
        android:onClick="onCheckboxClicked"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Do you have faith in the presence of God?"
        android:id="@+id/faith"
        android:textSize="15sp"
        android:layout_below="@+id/concern"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="3dp"
        android:onClick="onCheckboxClicked"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Do you have Respect for all people?"
        android:id="@+id/respect"
        android:layout_below="@+id/faith"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="3dp"
        android:textSize="15sp"
        android:onClick="onCheckboxClicked"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Do you value education?"
        android:id="@+id/education"
        android:textSize="15sp"
        android:layout_below="@+id/respect"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="3dp"
        android:onClick="onCheckboxClicked"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Are you inclusive in your community?"
        android:id="@+id/community"
        android:layout_below="@+id/education"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:textSize="15sp"
        android:checked="false"
        android:onClick="onCheckboxClicked"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ok"
        android:id="@+id/okButton_sallian"
        android:layout_below="@+id/community"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="20dp"
        android:layout_marginTop="90dp"
        android:layout_marginBottom="20dp"
        android:background="#FAFAFA"
        android:textColor="#00E676"
        android:elevation="2dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Check"
        android:id="@+id/check"
        android:textColor="#00E676"
        android:elevation="2dp"
        android:background="#FAFAFA"
        android:layout_alignTop="@+id/okButton_sallian"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="20dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:id="@+id/output"
        android:textColor="#1eff00"
        android:textSize="20sp"
        android:layout_below="@+id/community"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/check"
        android:textIsSelectable="false" />
</RelativeLayout>
    </ScrollView>

^^弹出xml代码^^

1 个答案:

答案 0 :(得分:-2)

您应该将清单中的启动器设置为check_Button而不是默认值,这可能是Pop_sallian。

<activity 
    android:name=".check_Button"
    <!--stuff -->
    <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>