我有一个模型视图片段,它有一个列表视图和一个文本视图。
我想要的是,每当列表视图的一个项目被点击,它的点击项目将显示在文本视图中。
以下是fragment_home.xml的代码:-
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.home.HomeFragment"
android:background="@drawable/background">
<ListView
android:id="@+id/lv_main"
android:layout_width="409dp"
android:layout_height="match_parent"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="1dp"
tools:ignore="MissingConstraints"
android:entries="@array/sections" >
</ListView>
<TextView
android:id="@+id/textHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</androidx.constraintlayout.widget.ConstraintLayout>
以下是www.example.com的代码HomeFragment.java
public class HomeFragment extends Fragment {
private FragmentHomeBinding binding;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
HomeViewModel homeViewModel =
new ViewModelProvider(this).get(HomeViewModel.class);
binding = FragmentHomeBinding.inflate(inflater, container, false);
View root = binding.getRoot();
final TextView textView = binding.textHome;
homeViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
以下是www.example.com的代码HomeViewModel.java
public class HomeViewModel extends ViewModel {
private final MutableLiveData<String> mText;
ListView lv_main;
ArrayList<String> items;
public HomeViewModel() {
mText = new MutableLiveData<>();
lv_main.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mText.setValue(items.get(position));
}
});
}
public LiveData<String> getText() {
return mText;
}
}
请让我知道如何才能做到这一点,并借此感谢我。
- 谢谢-谢谢
1条答案
按热度按时间eqoofvh91#
你可以使用一个接口来完成它,类似于:calling click with interface
因此,当单击item时,通过接口发送值并在textview中显示。