gpt4 book ai didi

java - 按钮可能产生空指针异常(Android Studio)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:57 24 4
gpt4 key购买 nike

Android Studio 的新手,我认为我做得很好,但昨晚遇到了一个错误,尽管我尽了最大的谷歌搜索努力,但我似乎无法修复。我的一项 Activity 上的按钮“可能会产生 java.lang.NullPointerException”,但每次按下它都会失败。它可能就像在错误的地方订购一行代码一样简单,但我对 Android Studio 很陌生,我真的不知道我哪里出错了。

   public class searchPage extends AppCompatActivity {

private GoogleApiClient client;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_page);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Button goBackButton = (Button) findViewById(R.id.goBackButton);

goBackButton.setOnClickListener(new View.OnClickListener() {
@Override

public void onClick(View v) {

startActivity(new Intent(searchPage.this, MainActivity.class));
}
});

这是 XML

 <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/goBackButton"
android:layout_marginTop="88dp"
android:layout_below="@+id/spinner4"
android:layout_centerHorizontal="true"
/>

和 list 文件

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.onein.mobilefinalapp">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".searchPage"
android:label="@string/title_activity_search_page"
android:theme="@style/AppTheme.NoActionBar" />

<activity
android:name=".MoviePage"
android:label="@string/title_activity_movie_page"
android:theme="@style/AppTheme.NoActionBar"></activity>

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>

</manifest>

这是 activity_search_page.xml

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_search_page" />

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

如果您需要任何其他信息,请告诉我。

非常感谢任何帮助!谢谢。

编辑 - 删除重复按钮,并添加到 activity_search_page.xml

最佳答案

Method invocation 'setOnClickListener' may produce 'java.lang.NullPointerException' less...

This inspection analyzes method control and data flow to report possible conditions that are always true or false, expressions whose value is statically proven to be constant, and situations that can lead to nullability contract violations.

这只是一个警告,因为如果在布局中找不到给定的 id,findViewById 将返回 null

如果您确定该 id 在您正在使用的布局中,您可以安全地忽略它,或者您可以通过断言(可能还有一个 @Nullable 注释)忽略它。

View v = findViewById(R.id.someId);
assert v != null;
v.setOnClickListener(...);

关于java - 按钮可能产生空指针异常(Android Studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com