RelativeLayout onClickListener 使我的应用程序崩溃
RelativeLayout onClickListener crashes my app
我是 android 开发的初学者,我找不到解决这个问题的方法。
我想在按下屏幕时做点什么,不管在哪里。
我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</RelativeLayout>
然后应用程序在创建 activity 时崩溃。
如果我删除监听器部分,它会正常工作。
非常感谢。
你还没有夸大你的布局。你需要像
这样的东西
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.yourLayout); // this guy here
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setOnClickListener(new View.OnClickListener() {
您的 RelativeLayout
存在于您的布局文件中,并且由于您没有使用 setContentView()
、findViewById()
returns null 对其进行扩充。当您尝试在其上设置侦听器时,这会导致 NPE
。
您需要确保在调用 findViewById 之前使用 R.layout.your_file_name 调用 setContentView 方法
我是 android 开发的初学者,我找不到解决这个问题的方法。 我想在按下屏幕时做点什么,不管在哪里。
我的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</RelativeLayout>
然后应用程序在创建 activity 时崩溃。 如果我删除监听器部分,它会正常工作。 非常感谢。
你还没有夸大你的布局。你需要像
这样的东西@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.yourLayout); // this guy here
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
layout.setOnClickListener(new View.OnClickListener() {
您的 RelativeLayout
存在于您的布局文件中,并且由于您没有使用 setContentView()
、findViewById()
returns null 对其进行扩充。当您尝试在其上设置侦听器时,这会导致 NPE
。
您需要确保在调用 findViewById 之前使用 R.layout.your_file_name 调用 setContentView 方法