bottomNavigationView = findViewById(R.id.navigation); return



我真的不知道为什么会发生这种情况。我对android开发非常陌生,所以很抱歉,如果这是一个非常晦涩的问题。基本上,在使用findViewById()方法后,bottomNavigationView是空的。我知道它是空的,因为我已经把它打印出来了。我搜索了其他帖子,我得出的结论是,它要么是方法序列,要么是xml文件。但我似乎找不出有什么问题。

2022-05-18 17:05:02.236 6836-6836/com.example.smartchatters W/e.smartchatter: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2022-05-18 17:05:02.521 6836-6836/com.example.smartchatters I/System.out: bottomNavigationView ->null
2022-05-18 17:05:02.579 6836-6858/com.example.smartchatters D/HostConnection: HostConnection::get() New Host Connection established 0xf0751650, tid 6858

这是MainActivity.java中的唯一方法:

import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
System.out.println("bottomNavigationView ->"+bottomNavigationView);
}
}

navigation.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/navigation"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
app:startDestination="@id/mainFragment"
>
<fragment
android:id="@+id/mainFragment"
android:name="com.example.smartchatters.MainFragment"
android:label="fragment_main"
tools:layout="@layout/fragment_main" />
<fragment
android:id="@+id/contactsFragment"
android:name="com.example.smartchatters.ContactsFragment"
android:label="fragment_contacts"
tools:layout="@layout/fragment_contacts" />
</navigation>

和gradle.build:

plugins {
id 'com.android.application'
}
android {
compileSdk 32
defaultConfig {
applicationId "com.example.smartchatters"
minSdk 21
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.6.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation 'androidx.navigation:navigation-fragment:2.4.2'
implementation 'androidx.navigation:navigation-ui:2.4.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

您正在设置为布局activity_main.xml

setContentView(R.layout.activity_main);

然后是方法

findViewById将在activity_main.xml文件中搜索视图id。

所以你需要使用视图id(你使用BottomNavigationView)从你的activity_main.xml

如果你没有id为"navigation"的视图在activity_main.xml中,该方法将返回null

相关内容

  • 没有找到相关文章

最新更新