Android中findviewbyid返回null
我不明白为什么它总是返回null((FrameLayout)findviewbyd(R.id.qrCameraPreview);)。我希望你能帮助我Android中findviewbyid返回null,android,Android,我不明白为什么它总是返回null((FrameLayout)findviewbyd(R.id.qrCameraPreview);)。我希望你能帮助我 import android.app.Activity; import android.hardware.Camera; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.view.View; import and
import android.app.Activity;
import android.hardware.Camera;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.FrameLayout;
import net.sourceforge.zbar.Config;
import net.sourceforge.zbar.Image;
import net.sourceforge.zbar.ImageScanner;
import net.sourceforge.zbar.Symbol;
import net.sourceforge.zbar.SymbolSet;
public class QRCodeReaderActivity extends Activity {
private Handler autoFocusHandler;
private Camera camera;
private CameraPreview cameraPreview;
private ImageScanner QRCodeScanner;
private boolean QRCodeScanned = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initiate();
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
{
//Old and deprecated implementation of Camera.
initiateOldCamera();
}
else
{
//New and improved version of CameraManager.
//todo: Implement this. But for now use old implementation.
initiateOldCamera();
}
QRCodeScanner = new ImageScanner();
QRCodeScanner.setConfig(0, Config.X_DENSITY, 3);
QRCodeScanner.setConfig(0, Config.Y_DENSITY, 3);
cameraPreview = new CameraPreview(this, camera, previewCameraCallback, autoFocusCallback);
}
private void initiate()
{
FrameLayout preview = (FrameLayout) findViewById(R.id.qrCameraPreview);
preview.addView(cameraPreview);
}
导入android.app.Activity;
导入android.hardware.Camera;
导入android.os.Build;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.widget.FrameLayout;
导入net.sourceforge.zbar.Config;
导入net.sourceforge.zbar.Image;
导入net.sourceforge.zbar.ImageScanner;
导入net.sourceforge.zbar.Symbol;
导入net.sourceforge.zbar.SymbolSet;
公共类QRCodeReaderActivity扩展活动{
专用处理器自动聚焦处理器;
私人摄像机;
私人摄像审查摄像审查;
专用图像扫描仪;
私有布尔QRCodeScanned=false;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
发起();
if(Build.VERSION.SDK\u INT
布局文件
<TextView
android:id="@+id/qrHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/point_camera_at_qr_code"
style="@style/textHeader"/>
<Button
android:id="@+id/qrCancelButton"
android:text="@string/cancel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/buttonLargeWhite"
android:layout_alignParentBottom="true"/>
<FrameLayout
android:id="@+id/qrCameraPreview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/qrHeader"
android:layout_above="@id/qrCancelButton"
android:background="@color/PrinchWhite"
android:padding="3dp"/>
您需要
setContentView(R.layout.x); // replace x with whatever your layout is called
在onCreate(Bundle savedInstanceState)
中,如下更改它
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.YourLayoutName);
}
设置ContentView之前,您正在搜索视图,这就是导致错误的原因。是否从正确的布局中找到视图?您必须使用布局id在oncreate中调用setContentView。setContentView在哪里?未指定布局。找不到任何视图。谢谢,我不知道我怎么会错过这个:S