I have kotlin working fragment. I want to rewrite it to Java.
I need to get viewModell inisialization in Java. How do i get it? I tried to use bitecode migration, but it gives a long code.
Kotlin file:
import android.os.Bundle
import ....
class AddDataFragment : Fragment() {
private val viewModell: DetailViewModel by lazy {
ViewModelProvider(this).get(DetailViewModel::class.java)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val v = inflater.inflate(R.layout.fragment_add_data, container, false)
return v
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
var weight_number = editTextNumber2.text.toString().toDouble()
val set_number = editSetNumber.text.toString().toInt()
//*************
// need this viewModell in Java !!!!!!
//*************
viewModell.saveWeather(
weather = Weather(
City("M", 51.5, weight_number),
set_number,
1
)
)
}
}
Java file:
public class AddDataFragmentJava extends Fragment {
private DetailViewModel sll;
public synchronized DetailViewModel getSampleLifecycleListener() {
if (sll == null) {
sll = new ViewModelProvider(this).get(DetailViewModel.class);
// sll = new ViewModelProvider(this).get(DetailViewModel::class.java);
}
return sll;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_add_data_java, container, false);
Button button = (Button) v.findViewById(R.id.buttonSaveData);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//*************
// How to get viewModell in Java?!!!!!!!
//**************
/* viewModell.saveWeather(
new Weather(
new City("M", 51.5, weight_number_double),
set_number,
1
)
);
*/
}
});
// Inflate the layout for this fragment
return v;
}
The bytecode transfare code is to complicated. So help me to understend how to do it in proper way.