Как сделать еще один элемент в навигационном ящике?

#java #android #android-studio #class #android-layout

#Ява #Android #android-студия #класс #android-макет

Вопрос:

Я попытался создать еще один элемент в шаблоне действий базового навигационного ящика на основе уже существующих. Я настроил его, как и другие, но я получаю эту ошибку в элементе/фрагменте, который я создал.

не удается найти новый символ ViewModelProvider(это).get(ProbaViewModel.class);

тот, что слева, - это один из оригинальных фрагментов, который поставляется вместе с шаблоном. Право-это то, что я сделал

Я надеюсь, что это видно. Это забавно, потому что красная линия уже была красной по умолчанию на фрагментах, которые уже были там, но приложение работало просто отлично. У него есть проблема только с тем, что я сделал. В чем может быть проблема? Я использую версию 4.3, потому что это требуется в моем классе.

 public class ProbaFragment extends Fragment {  public ProbaViewModel probaViewModel;   @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {  probaViewModel =  new ViewModelProvider(this).get(ProbaViewModel.class); // here   View root = inflater.inflate(R.layout.fragment_proba, container, false);  final TextView textView = root.findViewById(R.id.text_slideshow);  probaViewModel.getText().observe(getViewLifecycleOwner(), new Observerlt;Stringgt;() {  @Override  public void onChanged(@Nullable String s) {  textView.setText(s);  }  });  return root;  } }  

Зависимости

 android {  compileSdkVersion 31  buildToolsVersion "30.0.3"   defaultConfig {  applicationId "com.example.proba2"  minSdkVersion 16  targetSdkVersion 31  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.0'  implementation 'com.google.android.material:material:1.4.0'  implementation 'androidx.constraintlayout:constraintlayout:2.1.2'  implementation 'androidx.navigation:navigation-fragment:2.3.5'  implementation 'androidx.navigation:navigation-ui:2.3.5'  implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'  implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0'  implementation 'androidx.legacy:legacy-support-v4:1.0.0'  testImplementation 'junit:junit:4. '  androidTestImplementation 'androidx.test.ext:junit:1.1.3'  androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }  

Комментарии:

1. похоже, вам нужен импорт. Похоже, ViewModelProvider не распознан

Ответ №1:

можете ли вы попытаться удалить импорт ошибок и повторно синхронизировать свой проект и проверить ниже импорт

 import androidx.lifecycle.ViewModelProvider  

Как и ранее, общий gradle кажется устаревшим, поэтому удалите и это.

Комментарии:

1. Теперь я понимаю это: Не удалось решить: androidx.жизненный цикл:жизненный цикл-расширения:2.4.0