Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android getViewByID imagebutton返回null_Android_Onclicklistener_Imagebutton_Findviewbyid - Fatal编程技术网

Android getViewByID imagebutton返回null

Android getViewByID imagebutton返回null,android,onclicklistener,imagebutton,findviewbyid,Android,Onclicklistener,Imagebutton,Findviewbyid,我的xml上有一个imageButton: <ImageButton android:layout_width="30dp" android:layout_height="30dp" android:layout_marginTop="10dp" android:id="@+id/star" android:background="@drawable/star" android:layout_below="@+id/releaseDate"

我的xml上有一个imageButton:

<ImageButton
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_marginTop="10dp"
    android:id="@+id/star"
    android:background="@drawable/star"
    android:layout_below="@+id/releaseDate"
    android:layout_alignLeft="@+id/releaseDate"
    android:layout_alignStart="@+id/releaseDate" />  

是R.layout.activity\u detail或R.id.container中的ImageButton。ImageButton位于fragment\u detail上,由DetailActivity类调用,如果DetailActivityFragment类不在activity中,则由DetailActivity类调用findViewById(R.id.star)启动。您的片段未在方法OnCreate中创建我无法在DetailActivityFragment中调用findViewById,它未被识别问题是在片段上实现onClick,找到解决方案:ImageButton位于R.layout.activity\u detail或R.id.Container上ImageButton位于fragment\u detail上,由DetailActivity类调用,该类由DetailActivity类启动,如果DetailActivityFragment类不在activity中,则调用findViewById(R.id.star)。您的片段尚未在方法OnCreate中创建我无法在DetailActivityFragment中调用findViewById,无法识别它在片段上实现onClick时出现问题,找到了解决方案:
public class DetailActivity extends AppCompatActivity {
    ImageButton ib;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        if(savedInstanceState == null){
            getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new DetailActivityFragment())
                .commit();
            ib = (ImageButton)findViewById(R.id.star);
            if(ib != null) {
                ib.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.v(null, "Image Clicked!");
                }
            });
        }
    }
}