ViewModel을 이용한 Fragment 간의 데이터 전송 방법
검색하다가 코틀린 코드만 나오고 자바는 잘 안나와서 너무 힘들었다
그래서 블로그에 기록해서 널리널리 퍼트리기 👽🌏👍
SEND
SharedViewModel searchViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
binding.allList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
searchViewModel.sendMessage(CityName[i]);
activity.changeFragment(5);
}
});
RECEIVE
final Observer<String> selectObserver = new Observer<String>() {
@Override
public void onChanged(@Nullable final String s) {
spinnerBtn.setText(s);
}
};
SharedViewModel searchViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
searchViewModel.getMessage().observe(getViewLifecycleOwner(), selectObserver);
VIEWMODEL
package com.example.zaevtour.ui.search;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
public final class SharedViewModel extends ViewModel {
@NotNull
private final MutableLiveData message = new MutableLiveData();
@NotNull
public final MutableLiveData getMessage() {
return this.message;
}
public final void sendMessage(@NotNull String text) {
Intrinsics.checkNotNullParameter(text, "text");
this.message.setValue(text);
}
}
728x90
'🌐 웹개발 > 웹 개발' 카테고리의 다른 글
[React | JS] Github pages에 배포하기 (0) | 2023.04.25 |
---|---|
[React | JS] SyntaxError: Cannot use import statement outside a module (0) | 2023.04.25 |
Web은 무엇인가 | 웹 브라우저에 URL을 입력했을 때 | 🌏웹웹웹🌏 (0) | 2023.04.11 |
[Github pages] 404 There isn't a GitHub Pages site here. (0) | 2023.04.05 |
[JS | nodejs] nodemon 자동으로 서버 재시작해주는 도구 (0) | 2023.04.05 |
ViewModel을 이용한 Fragment 간의 데이터 전송 방법
검색하다가 코틀린 코드만 나오고 자바는 잘 안나와서 너무 힘들었다
그래서 블로그에 기록해서 널리널리 퍼트리기 👽🌏👍
SEND
SharedViewModel searchViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
binding.allList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
searchViewModel.sendMessage(CityName[i]);
activity.changeFragment(5);
}
});
RECEIVE
final Observer<String> selectObserver = new Observer<String>() {
@Override
public void onChanged(@Nullable final String s) {
spinnerBtn.setText(s);
}
};
SharedViewModel searchViewModel = new ViewModelProvider(requireActivity()).get(SharedViewModel.class);
searchViewModel.getMessage().observe(getViewLifecycleOwner(), selectObserver);
VIEWMODEL
package com.example.zaevtour.ui.search;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
import org.jetbrains.annotations.NotNull;
public final class SharedViewModel extends ViewModel {
@NotNull
private final MutableLiveData message = new MutableLiveData();
@NotNull
public final MutableLiveData getMessage() {
return this.message;
}
public final void sendMessage(@NotNull String text) {
Intrinsics.checkNotNullParameter(text, "text");
this.message.setValue(text);
}
}
728x90
'🌐 웹개발 > 웹 개발' 카테고리의 다른 글
[React | JS] Github pages에 배포하기 (0) | 2023.04.25 |
---|---|
[React | JS] SyntaxError: Cannot use import statement outside a module (0) | 2023.04.25 |
Web은 무엇인가 | 웹 브라우저에 URL을 입력했을 때 | 🌏웹웹웹🌏 (0) | 2023.04.11 |
[Github pages] 404 There isn't a GitHub Pages site here. (0) | 2023.04.05 |
[JS | nodejs] nodemon 자동으로 서버 재시작해주는 도구 (0) | 2023.04.05 |