我使用带有viewpager的tablayout,我在其中调用了三个片段。 我对这3个片段中的一个有错误,这个: equasec_calc.xml 的一部分:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="fr.djey.maths.EquasecCalc">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerInParent="true"
android:gravity="center">
<EditText
android:text=""
android:inputType="numberSigned|numberDecimal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/valuea"
/>
<EditText
android:text=""
android:inputType="numberSigned|numberDecimal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/valueb"/>
<EditText
android:text=""
android:inputType="numberSigned|numberDecimal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/valuec"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="apply"
android:onClick="apply"/>
</LinearLayout>
</RelativeLayout>
它的一部分java: EquasecCalc.java :
public void apply(View v) {
variablea = Double.parseDouble(valuea.getText().toString());
variableb = Double.parseDouble(valueb.getText().toString());
variablec = Double.parseDouble(valuec.getText().toString());
Equasec Equasec = new Equasec();
List<Double> result = Equasec.equasecCalc(variablea, variableb, variablec);
size = result.size();
if(size==1) {
x = result.get(0);
}
else if(size==2) {
x = result.get(0);
y = result.get(1);
}
flag = 1;
EquasecResult.Result();
}
logcat的:
01-18 21:43:46.531 15462-15462/fr.djey.maths E/AndroidRuntime: FATAL EXCEPTION: main
Process: fr.djey.maths, PID: 15462
java.lang.IllegalStateException: Could not find method apply(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:307)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:266)
at android.view.View.performClick(View.java:5198)
at android.view.View$PerformClick.run(View.java:21147)
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)
01-18 21:43:52.049 15462-15468/fr.djey.maths W/art: Suspending all threads took: 16.749ms
正如您在标题中看到的那样,点击按钮时出现错误,其中包含onclick属性 apply 。你能告诉我怎样才能在片段里面做onclick动作吗?
如果您认为我的错误可能来自其他文件,请告诉我,我会将其他文件放入。
由于
答案 0 :(得分:0)
android:onClick适用于API级别4及以后版本,所以如果你的目标是下面那么你就不能使用它。