选中核对清单时,应用会停止

时间:2016-03-14 06:53:35

标签: android

检查核对表后,应用程序停止并出现logcat错误。 我不确定为什么,但我会在下面加上代码,如果您需要我提供更多代码,请随时提问。

03-14 06:42:09.980 29887-29887/xyz.ashraf.whoisdelasalle E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: xyz.ashraf.whoisdelasalle, PID: 29887
                                                                           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 'respect'
                                                                               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)

^^ log cat error ^^

package xyz.ashraf.whoisdelasalle;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button b = (Button) findViewById(R.id.who);
        Button today = (Button) findViewById(R.id.today);
        Button sallian = (Button) findViewById(R.id.sallian);
        Button how = (Button) findViewById(R.id.toBe);
        Button moreInfo = (Button) findViewById(R.id.info);

        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Pop.class));
            }
        });

        today.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Pop_today.class));
            }
        });
        sallian.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Pop_sallian.class));
            }
        });
        how.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Pop_how.class));
            }
        });
        moreInfo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this, Pop_info.class));
            }
        });
    }
}

^^主要活动^^

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));

        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));
            }
        });
        Button okButton = (Button) findViewById(R.id.okButton_sallian);
        okButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

^^调用checkbutton.java的检查按钮是^^

的代码
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 view) {
        boolean checked = ((CheckBox) view).isChecked();

        switch (view.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
    }
}

^^用于检查已检查了多少清单的代码,并为其添加了值。^^

<?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 ^^

请将代码示例作为答案的一部分。

2 个答案:

答案 0 :(得分:0)

您的活动中没有任何方法使用此名称onCheckboxClicked。

因为你在xml中添加了onClick方法,见下文

   <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"/>
  

机器人:的onClick = “onCheckboxClicked”

检查所有复选框。

你需要像你一样在你的活动中添加一个方法

public void onCheckboxClicked(View v){
// do what ever you want.
}
  

但是对于复选框,则无需添加此类方法。你只需要添加onCheckChangedListener

在您的活动中

并检查复选框的状态。

在您的活动onCreate

中添加此内容
CheckBox checkBox = (CheckBox ) findViewById(R.id.concern);

checkBox .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) {
                        // your check box is checked now. do what ever you wnat
                    } else {
                        // you check box is uncheckd now do what ever you want.
                    }
                }
            });

对所有复选框执行相同的操作。

如果想要更改任何按钮上的复选框状态,请单击

然后做以下事情。

  

获取您活动中的所有复选框视图。就像我关心的那样cehck Box

并在按钮内单击执行此操作

checkbox.setchecked(true)

checkbox.setchecked(false)

我希望你现在明白我刚才说的话。

答案 1 :(得分:0)

在xml文件中,您已声明了复选框:

android:onClick="onCheckboxClicked"

这意味着在你的活动中你需要声明方法:

public void onCheckboxClicked(View view){}