【发布时间】:2016-01-26 22:02:10
【问题描述】:
所以今天我创建了标签视图栏和片段,并在其中一个片段中添加了一些图像按钮。
当我在按钮代码上添加 android:onClick="name" 并在 .java 文件中写入 Intent 时,单击该按钮时会出现强制关闭错误。
这是我的代码:
片段.xml
<ImageButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnProgramiPL5x5"
android:minHeight="80dp"
android:background="@mipmap/btn_programi_pl_5x5"
android:onClick="ProgramiPowerlifting5x5"/>
片段.java
package hr.app.liftme.liftmehr;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
/**
* A simple {@link Fragment} subclass.
*/
public class FragmentPowerlifting extends Fragment {
public FragmentPowerlifting() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_powerlifting, container, false);
}
ProgramiPowerlifting5x5.java
package hr.app.liftme.liftmehr;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
public class ProgramiPowerlifting5x5 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_programi_powerlifting5x5);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Intent intent = getIntent();
}
}
我得到的错误是:
01-26 23:00:44.766 14491-14491/hr.app.liftme.liftmehr E/AndroidRuntime: FATAL EXCEPTION: main
Process: hr.app.liftme.liftmehr, PID: 14491
java.lang.IllegalStateException: Could not find method ProgramiPowerlifting5x5(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatImageButton with id 'btnProgramiPL5x5'
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:4856)
at android.view.View$PerformClick.run(View.java:19956)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
我不知道是什么问题,当我链接两个活动时,我使用了this, name.class,但在这种情况下不起作用,所以我使用了getActivity,但它仍然不起作用。
非常感谢您的帮助!
谢谢!
【问题讨论】:
-
你能展示一下 ProgramiPowerlifting5x5 的所有构造函数吗?
-
Android Studio 是一个 IDE。谁在乎你使用什么文本编辑器?这与问题无关。你不明白其中的区别吗?
-
那不是构造函数,它返回一个 void 并且它可能甚至不在类中
-
与 Gavriel 所说的一样,我强烈建议不要将方法命名为与类名相同的名称。对于阅读代码的人来说非常混乱。