私は、「今までのアクティビティクラスのメソッドonclick(view)を見つけることができませんでした」というエラーが発生しました。どんなに進んでいない。ここでアクティビティクラスのメソッドonclick(view)を見つけることができませんでした
私のコードです:
LogCat:
02 15:44:48.972 14881-14881/edu.uwgb.ratemyanimal E/AndroidRuntime: FATAL EXCEPTION: main
Process: edu.uwgb.ratemyanimal, PID: 14881
java.lang.IllegalStateException: Could not find method switchImage(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'btnThumbsUp'
at android.view.View$DeclaredOnClickListener.resolveMethod(View.java:4757)
at android.view.View$DeclaredOnClickListener.onClick(View.java:4716)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
switchImage機能:今コメントアウトされている
public void switchImage()
{
Toast.makeText(getActivity().getApplicationContext(), "Function hit", Toast.LENGTH_SHORT).show();
}
二onClickListeners:
// onclick
// Button btnThumbsUp = (Button) getActivity().findViewById(R.id.btnThumbsUp);
//
// btnThumbsUp.setOnClickListener(new View.OnClickListener(){
// public void onClick(View v) {
// ImageView dogImage = getActivity().findViewById(R.id.imageDog);
//// dogImage.setImageResource(dogImages.get(index));
// dogImage.setImageResource(dogImages.get(index));
//
// Toast.makeText(getActivity().getApplicationContext(), "Function hit", Toast.LENGTH_SHORT).show();
//
// index++;
//
// }
// });
//
// Button btnThumbsDown = getActivity().findViewById(R.id.btnThumbDown);
//
// btnThumbsDown.setOnClickListener(new View.OnClickListener(){
// public void onClick(View v) {
// }
// });
XMLについてフラグメント:
- はアンドロイド `とXMLを通じて関数を呼び出す
<Button/>
から<android.support.v7.widget.AppCompatButton
- にXMLでボタンに変更:のonClick = "switchImageを" 私が試してみました
<android.support.v7.widget.AppCompatButton
android:id="@+id/btnThumbsUp"
android:layout_width="130dp"
android:layout_height="wrap_content"
android:layout_marginLeft="-118dp"
android:layout_marginTop="-751dp"
android:text="Thumbs Up"
android:onClick="switchImage"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/guideButtons" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/btnThumbDown"
android:text="Thumbs Down"
android:onClick="switchImage"
android:layout_width="130dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/guideButtons"
app:layout_constraintRight_toRightOf="parent"/>
物事
onClickListener
をフラグメントのonCreate
ファンクション内に作成する私はこれをかなり長い間働かせようとしています。私はこれについて多くの異なったことを調べ、何も働いていない。私は下のナビゲーションバーの中にさまざまな断片を作り、私の人生のために働くためにボタンを得ることができません。
ありがとうございました。
EDIT:
ここではonCreateView方法である:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
// View view = inflater.inflate(R.layout.fragment_dog, container, false);
Button btnThumbsUp = (Button) getActivity().findViewById(R.id.btnThumbsUp);
btnThumbsUp.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
ImageView dogImage = getActivity().findViewById(R.id.imageDog);
dogImage.setImageResource(dogImages.get(index));
// Toast.makeText(getActivity(), "Function hit", Toast.LENGTH_SHORT).show();
index++;
}
});
私はあなたがappcompatボタンへの変更を試したようなことは不要です。 xmlからの呼び出しは、フラグメントではないアクティビティーでのみ機能し、最後に、ソリューションは 'onCreate'ではなくonCreateViewで行わなければなりません。下の私の答えに詳しい情報をチェックしてください! – Xenolion